diff --git a/.kiro/prompts/new-construct.md b/.kiro/prompts/new-construct.md new file mode 100644 index 000000000..9ca340cdc --- /dev/null +++ b/.kiro/prompts/new-construct.md @@ -0,0 +1,102 @@ +# Implement New AWS Solutions Construct + +You are tasked with implementing a new AWS Solutions Construct based on the specification file at `specs/{{arg1}}` and the README.adoc file that has already been created. + +## Implementation Steps + +1. **Read the specification file** at `specs/{{arg1}}` to understand: + - Main services involved + - Interface requirements (props) + - Incoming props validation checks + - Configuration and integration logic + - Construct properties to expose + +2. **Review the existing README.adoc** in the construct directory to ensure alignment with documented behavior + +3. **Create the directory structure** following the pattern: + ``` + source/patterns/@aws-solutions-constructs/aws-{service1}-{service2}/ + ├── lib/ + │ └── index.ts + ├── test/ + │ ├── integ.*.test.ts + │ └── test.*.test.ts + ├── package.json + ├── .npmignore + ├── .gitignore + └── README.md (brief) + ``` + +4. **Implement lib/index.ts**: + - Add Apache 2.0 license header + - Import required CDK modules and core helpers + - Define Props interface matching README.adoc documentation + - Implement Construct class with: + - Public properties for all created resources + - Constructor that validates props, creates resources, and configures integrations + - Follow patterns from similar existing constructs + +5. **Add core helper functions** if needed: + - Create `core/lib/{service}-helper.ts` for new services + - Add validation functions (e.g., `CheckTranslateProps()`) + - Add VPC endpoint support if required + +6. **Create package.json**: + - Set correct name: `@aws-solutions-constructs/aws-{service1}-{service2}` + - Configure JSII targets for TypeScript, Python, Java, .NET + - Add dependencies on `@aws-solutions-constructs/core` and `aws-cdk-lib` + - Include standard scripts: build, lint, test, integ + +7. **Write unit tests** in `test/test.*.test.ts`: + - Test default configuration + - Test with custom props + - Test with existing resources + - Test VPC deployment scenarios + - Test error conditions and validation + - Achieve 95%+ code coverage + +8. **Write integration tests** in `test/integ.*.test.ts`: + - Test default deployment + - Test major architectural variations (with/without VPC, existing resources, etc.) + - Use `generateIntegStackName()` and `SetConsistentFeatureFlags()` + +9. **Create supporting files**: + - `.npmignore` - exclude test files and source maps + - `.gitignore` - exclude build artifacts + - `README.md` - brief description pointing to README.adoc + +10. **Validate implementation**: + - Run `npm run build` to compile TypeScript + - Run `npm run lint` to check code style + - Run `npm test` to verify unit tests pass with coverage + - Run `npm run integ` to create integration test snapshots + +## Key Requirements + +- Follow naming conventions from structure.md +- Use core helper functions for resource creation +- Implement least-privilege IAM permissions +- Add environment variables for resource discovery +- Support VPC deployment when appropriate +- Match all prop and property descriptions to README.adoc comments +- Ensure consistency with existing constructs for shared services +- Follow ESLint rules in eslintrc.config.mjs +- Add license headers to all source files + +## Reference Documentation + +Refer to the steering files for detailed guidance: +- `.kiro/steering/structure.md` - Repository structure and patterns +- `.kiro/steering/product.md` - Product requirements and best practices +- `.kiro/steering/tech.md` - Technical implementation details +- `.kiro/steering/test.md` - Testing requirements and patterns +- `.kiro/steering/exceptions.md` - Known exceptions to standard patterns + +## Output + +Provide a complete, working implementation that: +- Compiles without errors +- Passes all linting checks +- Has comprehensive test coverage +- Follows all Solutions Constructs patterns and conventions +- Matches the behavior documented in README.adoc diff --git a/.kiro/prompts/new-readme.md b/.kiro/prompts/new-readme.md new file mode 100644 index 000000000..3c25c95f6 --- /dev/null +++ b/.kiro/prompts/new-readme.md @@ -0,0 +1,88 @@ +# Create README.adoc for New AWS Solutions Construct + +You are tasked with creating a README.adoc file for a new AWS Solutions Construct based on the specification file at `.kiro/specs/{{arg1}}`. + +## Implementation Steps + +1. **Read the specification file** at `.kiro/specs/{{arg1}}` to understand: + - Construct name (aws-{service1}-{service2}) + - Main services involved + - Interface requirements (all props) + - Configuration and default settings + - Construct properties to expose + +2. **Determine the correct location**: + - Path: `source/patterns/@aws-solutions-constructs/aws-{service1}-{service2}/README.adoc` + +3. **Review similar constructs** for reference: + - For Lambda-based constructs, reference `aws-lambda-dynamodb` or `aws-lambda-transcribe` + - Match the structure and style of existing README.adoc files + +4. **Create README.adoc** with the following sections: + + **Header:** + - Module name and title + - Stability badge (use Experimental for new constructs) + - Reference documentation link + - Language package table (TypeScript, Python, Java) + + **Overview:** + - Brief description of what the construct does + - Minimal deployable examples in TypeScript, Python, and Java + - Use realistic runtime versions (NODEJS_22_X, PYTHON_3_11, etc.) + + **Pattern Construct Props:** + - Table with columns: Name, Type, Description + - Include all props from the spec interface + - Link to AWS CDK API documentation for all types + - Mark optional props with `?` + - Ensure descriptions match what will be in the code comments + + **Pattern Properties:** + - Table with columns: Name, Type, Description + - List all public properties exposed by the construct + - Link to AWS CDK API documentation for all types + + **Default Settings:** + - Subsection for each major service + - Bullet list of default configurations applied + - Highlight security best practices (encryption, IAM, logging, etc.) + + **Architecture:** + - Reference to architecture diagram: `image::aws-{service1}-{service2}.png` + - Brief description of the diagram + + **Example Lambda Function Implementation (if applicable):** + - For Lambda constructs, link to AWS SDK example code + - Use github.com/awsdocs/aws-doc-sdk-examples links + + **Footer:** + - Copyright notice + +## Key Requirements + +- Use AsciiDoc format with proper syntax +- Ensure prop descriptions will match code comments exactly +- Include links to AWS CDK API documentation for all types +- Use tabbed code blocks for multi-language examples +- Follow the exact structure and style of existing README.adoc files +- Mark new constructs as Experimental stability +- Ensure all props from the spec are documented +- Document VPC-related props if applicable +- Document S3 bucket props if applicable +- Be precise about default values and optional parameters + +## Reference Examples + +Review these existing constructs for structure: +- `aws-lambda-dynamodb/README.adoc` - Basic Lambda pattern +- `aws-lambda-transcribe/README.adoc` - Lambda with S3 buckets and async jobs + +## Output + +Create a complete README.adoc file at the correct location that: +- Follows all Solutions Constructs documentation patterns +- Accurately reflects the spec requirements +- Provides clear, working examples in multiple languages +- Documents all props and properties comprehensively +- Matches the style and structure of existing constructs diff --git a/.kiro/specs/aws-lambda-translate.md b/.kiro/specs/aws-lambda-translate.md new file mode 100644 index 000000000..b52dc9d3c --- /dev/null +++ b/.kiro/specs/aws-lambda-translate.md @@ -0,0 +1,38 @@ +# AWS Solutions Constructs Product Documentation + +## Spec for aws-lambda-translate +This should only be referenced when generating code and artifacts for aws-lambda-translate, for any other tasks it should be ignored + +### Main Services +* Lambda Function +* Amazon Translate - Translate is an API, there are no depoyed resources. So there are no translateProps in the construct interface + +### Interface +* All required props for Lambda based constructs +* This is the first Construct using Translate, so this will define the interface for Translate constructs + * A flag, asyncJobs, that defaults to false + * Source and Destination S3 bucket props, modeled on those created for aws-lamba-transcribe + * AdditionalPermissions - an array of strings listing additional IAM permissions to grant the Lambda function. Default will be List* and Read*, is asyncJobs is true it will add StartTextTranslationJob and StopTextTranslationJob + +### Incoming Props Checks +* All Lambda checks in CheckLambdaProps() +* A new CheckTranslateProps() in core/translat-helper.ts that includes + * If any Source and Destination bucket info is provided when asyncJobs is false, an error is thrown + * If useSameBucket is set and any Destination bucket props are provided and error is thrown + +### Configuration +* Obtain the Lambda function +* Grant the Lambda function access to + * Translate:Read* and Translate:List* + * if asyncJobs is true add StartTextTranslationJob and StopTextTranslationJob + * Add any additionalPermissions + * if asyncJobs is true, grant read access to the source bucket and write access to the destination bucket +* As instructed, create or use a VPC and add a Translate VPC endpoint to the VPC + * This will require adding Translate VPC Endpoints to the core library +* If asyncJobs is true + * Add StartTextTranslationJob and StopTextTranslationJob actions to the Lambda IAM policy + * Create the source and destination bucket(s) following the pattern in aws-lambda-transcribe + +### Construct Properties +* Standard Lambda Function properties +* Translate does not require any exposed properties on the construct diff --git a/.kiro/steering/exceptions.md b/.kiro/steering/exceptions.md new file mode 100644 index 000000000..51135c4fc --- /dev/null +++ b/.kiro/steering/exceptions.md @@ -0,0 +1,12 @@ +# AWS Solutions Constructs - Exceptions List + +## Overview +The rules for construct architecture laid out in product.md, tech.md, structure.md and test.md are not unversally followed, for various reasons, including: +* Improved understanding of how services should be defined as the library grew +* Scenarios where resources must be declared by a particular construct, so other constructs can only accept an existing construct (example - API Gateway must be launched integrated with a backend service, so aws-cloudfront-apigateway can only accept an existing service) +* Services must be launched at the top level due to the need to export specific elements (example - Bedrock Inference Profiles are launched in aws-lambda-bedrockinferenceprofile/lib/index.ts) +This document will explicitly list new exceptions and gradually document exceptions that have already been implemented. + +### VPCs Required for OpenSearch and Elasticsearch +OpenSearch domains and Elasticsearch domains must be launched in a VPC - so any construct referencing these services does not expose the deployVpc property as it MUST be true. + diff --git a/.kiro/steering/product.md b/.kiro/steering/product.md new file mode 100644 index 000000000..a11c92c96 --- /dev/null +++ b/.kiro/steering/product.md @@ -0,0 +1,183 @@ +# AWS Solutions Constructs Product Documentation + +## Overview + +AWS Solutions Constructs is an open-source library of CDK L3 Constructs that implement well-architected, multi-service patterns. Each construct combines two or more AWS services with best-practice configurations, least-privilege IAM permissions, and appropriate service integrations. + +## What Makes Solutions Constructs Different + +Solutions Constructs are **multi-service patterns** that go beyond single-resource abstractions: + +- Each construct deploys **2+ AWS services** configured to work together +- Resources are deployed by helper functions in the `core` folder +- The construct code in `index.ts` focuses on **integration logic**: + - Least privilege IAM permissions between services + - Environment variables for compute resources to discover other resources + - VPC configuration with appropriate endpoints when needed + - Event source mappings and triggers + +## Construct Implementation Pattern + +### Props Interface + +Each construct exposes a consistent props interface: + +**Service-specific props:** +- `existing{Service}Obj?` - Use existing resource instance +- `{service}Props?` - Override default resource properties + +For each major service in a construct, customers have three options: +1. **Use defaults** - Omit both props, construct creates resource with best-practice defaults +2. **Override defaults** - Provide some subset `{service}Props` to customize specific properties. Defining the type of this attribute with `| any` allows the client to supply any desired prop without supplying all required all props +3. **Use existing resource** - Provide `existing{Service}Obj` to integrate with pre-existing resource + +**Common patterns:** +- VPC props (when applicable): `existingVpc?`, `vpcProps?`, `deployVpc?` +- Environment variable names for compute resources +- Permission configurations (e.g., `tablePermissions`) + +**Consistency rule:** When a service appears in multiple constructs, the same prop names and types are used across all constructs. The comments in the interface definition in the typescript file must be the same in each code file and in each README.adoc file. + +### Construct Class + +**Public properties:** +- References to all deployed resources (e.g., `lambdaFunction`, `dynamoTable`) +- VPC reference if deployed + +**Constructor pattern:** +1. Call validation functions from core (e.g., `CheckLambdaProps`, `CheckDynamoDBProps`) +2. Call helper functions to create resources (e.g., `buildLambdaFunction`, `buildDynamoDBTable`) +3. Configure integrations (IAM permissions, environment variables, event sources) +4. Set up VPC and endpoints if required + +### Core Helper Functions + +Located in `core/lib/`, organized by service: + +**Naming patterns:** +- `*-helper.ts` - Functions to build and configure resources +- `*-defaults.ts` - Default property values following best practices. The Default{resource}Props() function may return a fixed set of props, or accept an argument that allows it to tailor the props for a particular scenario. + +**Common helpers:** +- `build{Service}()` or `obtain{Service}()` - Create resource with defaults. Obtain is preferred when the existing resource prop is passed into the function, as in that case the function merely returns the exsiting resource (it doesn't actually "build" anything) +- `add{Service}Permissions()` - Grant least-privilege IAM +- `Check{Service}Props()` - Validate prop combinations + +## Best Practices Implemented + +### Security + +1. **Least Privilege IAM** - Constructs grant only necessary permissions between services +2. **Encryption** - Resources use encryption at rest and in transit by default (preferrably encryption managed by AWS) +3. **Logging** - CloudWatch logging enabled where applicable +4. **VPC Isolation** - Optional VPC deployment with appropriate endpoints +5. **Traceability** - XRay is enabled whenever appropriate + +### Configuration + +1. **Well-Architected Defaults** - All resources use AWS best practices by default +2. **Override Capability** - Clients can override any default via props +3. **Existing Resource Support** - Can integrate with existing resources via `existing*Obj` props + +### Integration +Includes, but is not limited to: +1. **Environment Variables** - Compute resources receive env vars for resource discovery +2. **Event Sources** - Automatic configuration of triggers and subscriptions +3. **VPC Endpoints** - Gateway/Interface endpoints created when VPC is used + +## VPC Deployment Pattern + +Constructs involving compute resources (Lambda, Fargate) support optional VPC deployment: + +**When VPC is appropriate:** +- Lambda constructs - optional via `deployVpc` flag +- Fargate constructs - always deployed in VPC +- OpenSearch/Elasticsearch constructs - always require VPC + +**VPC configuration:** +- `deployVpc: true` - Construct creates new VPC +- `existingVpc` - Use existing VPC +- `vpcProps` - Override default VPC properties +- Appropriate VPC endpoints created automatically (e.g., DynamoDB Gateway Endpoint) + +## Documentation Pattern + +### README.adoc Structure + +1. **Header** - Stability badge, language packages +2. **Overview** - Pattern description with minimal example +3. **Pattern Construct Props** - Table of all props with types and descriptions +4. **Pattern Properties** - Public properties exposed by construct +5. **Default Settings** - What the construct configures by default +6. **Architecture** - Diagram and resource list +7. **Examples** - Additional usage examples in TypeScript, Python, Java + +### Key Documentation Elements + +- Links to AWS CDK API documentation for all types +- Code examples in multiple languages +- Clear indication of required vs optional props +- Default values explicitly stated +- Prop and Property descriptions are identical to comments found in the index.ts file + +## Special Cases + +### aws-constructs-factories + +Exception to the two-service rule. Provides factory functions that expose core functionality for creating single, well-architected resources: + +- `FactoryS3Bucket()` - Create S3 bucket with best practices +- `FactoryStateMachine()` - Create Step Functions state machine +- `FactoryVpc()` - Create VPC with standard configuration +- `FactorySqsQueue()` - Create SQS queue with DLQ + +Allows clients to use Solutions Constructs patterns for individual resources when no multi-service pattern fits their needs. + +### Multi-Stack Patterns + +Some use cases (e.g., `aws-restaurant-management-demo`) implement complex architectures across multiple stacks, demonstrating how constructs compose for real-world applications. + +## Development Workflow + +### Adding a New Construct + +1. Create directory: `aws-{service1}-{service2}` +2. Create `README.adoc` following existing patterns - ask for review from the Constructs team before building +3. Implement `lib/index.ts`: + - Props interface + - Construct class + - Use core helpers +4. Add tests in `test/` +5. Generate architecture diagram +6. Update package.json with dependencies + +### Using Core Functionality + +- Import from `@aws-solutions-constructs/core` +- Use existing helpers for common services +- Add new helpers to core if creating reusable functionality +- Follow naming conventions: `build*`, `Check*`, `add*` + +### Maintaining Consistency + +- Same prop names for same services across constructs +- Consistent validation patterns +- Standard error messages +- Uniform documentation structure + +## CDK Version Management + +- Solutions Constructs releases are tied to specific CDK versions +- See CHANGELOG.md for version mappings +- Clients can use newer CDK versions than the construct was built against +- Upgrade constructs when new releases are available + +## Key Principles + +1. **Multi-Service Focus** - Each construct integrates 2+ services +2. **Best Practices by Default** - Well-architected configurations out of the box +3. **Override Everything** - Clients can customize any aspect +4. **Least Privilege** - Minimal IAM permissions granted +5. **Consistent Interface** - Same patterns across all constructs +6. **Comprehensive Testing** - Unit and integration tests for all patterns +7. **Clear Documentation** - Detailed README with examples in multiple languages diff --git a/.kiro/steering/structure.md b/.kiro/steering/structure.md new file mode 100644 index 000000000..86dcf6fe8 --- /dev/null +++ b/.kiro/steering/structure.md @@ -0,0 +1,311 @@ +# AWS Solutions Constructs - Repository Structure + +## Top-Level Organization + +``` +source/patterns/@aws-solutions-constructs/ +├── core/ # Shared helper functions and defaults +├── resources/ # Shared resource utilities (CDK custom resources, etc.) +├── aws-constructs-factories/ # Factory functions for single resources +├── aws-{service1}-{service2}/ # Individual construct patterns +├── eslintrc.config.mjs # Shared ESLint configuration +├── tslint.yaml # Shared TSLint configuration +├── integ.config.json # Integration test configuration +└── license-header.js # License header template +``` + +## Construct Pattern Directory Structure + +Each construct follows this standard structure: + +``` +aws-{service1}-{service2}/ +├── lib/ +│ └── index.ts # Main construct implementation +├── test/ +│ ├── integ.*.test.ts # Integration test files +│ ├── integ.*.js.snapshot/ # Integration test snapshots +│ ├── test.*.test.ts # Unit test files +│ └── {service}/ # Test fixtures (Lambda code, etc.) +├── README.adoc # Full documentation +├── README.md # Brief description +├── package.json # NPM package definition +├── integ.config.json # Integration test config +├── .npmignore # NPM ignore patterns +├── .gitignore # Git ignore patterns +└── {construct-name}.png # Architecture diagram +``` + +## Core Module Structure + +The `core/` directory contains shared functionality: + +``` +core/ +├── lib/ +│ ├── {service}-helper.ts # Resource creation and configuration +│ ├── {service}-defaults.ts # Default property values +│ ├── utils.ts # Utility functions +│ ├── vpc-helper.ts # VPC creation and configuration +│ ├── security-group-helper.ts # Security group utilities +│ └── override-warning-service.ts # Property override warnings +├── test/ # Core functionality tests +├── index.ts # Public API exports +├── package.json # Core package definition +└── README.md # Core module documentation +``` + +### Core Helper File Patterns + +**Helper files** (`*-helper.ts`): +- `build{Service}()` - Create resource with defaults, sometimes 1 function for all deployments, sometimes multiple functions for different scenarios (example - cloudfront-helper.ts) +- `add{Service}Permissions()` - Grant IAM permissions +- Service-specific configuration functions + +**Default files** (`*-defaults.ts`): +- `Default{Service}Props()` - Return default properties +- Well-architected configuration values +- Security best practices + +## Construct Implementation File (lib/index.ts) + +Standard structure for two-service construct: + +```typescript +// 1. License header +// 2. Imports +import * as service1 from 'aws-cdk-lib/aws-{service1}'; +import * as service2 from 'aws-cdk-lib/aws-{service2}'; +import * as defaults from '@aws-solutions-constructs/core'; +import { Construct } from 'constructs'; + +// 3. Props Interface +export interface {Service1}To{Service2}Props { + readonly existing{Service1}Obj?: service1.Resource; + readonly {service1}Props?: service1.ResourceProps; + readonly existing{Service2}Obj?: service2.Resource; + readonly {service2}Props?: service2.ResourceProps; + // VPC props if applicable + readonly existingVpc?: ec2.IVpc; + readonly vpcProps?: ec2.VpcProps; + readonly deployVpc?: boolean; +} + +// 4. Construct Class +export class {Service1}To{Service2} extends Construct { + // Public properties + public readonly {service1}Resource: service1.Resource; + public readonly {service2}Resource: service2.Resource; + public readonly vpc?: ec2.IVpc; + + constructor(scope: Construct, id: string, props: {Service1}To{Service2}Props) { + super(scope, id); + // Validation + // Resource creation + // Integration configuration + } +} +``` + +Standard structure for three-service construct: + +```typescript +// 1. License header +// 2. Imports +import * as service1 from 'aws-cdk-lib/aws-{service1}'; +import * as service2 from 'aws-cdk-lib/aws-{service2}'; +import * as service3 from 'aws-cdk-lib/aws-{service3}'; +import * as defaults from '@aws-solutions-constructs/core'; +import { Construct } from 'constructs'; + +// 3. Props Interface +export interface {Service1}To{Service2}To{Service3}Props { + readonly existing{Service1}Obj?: service1.Resource; + readonly {service1}Props?: service1.ResourceProps; + readonly existing{Service2}Obj?: service2.Resource; + readonly {service2}Props?: service2.ResourceProps; + readonly existing{Service3}Obj?: service3.Resource; + readonly {service3}Props?: service3.ResourceProps; + // VPC props if applicable + // Construct specific props if applicable +} + +// 4. Construct Class +export class {Service1}To{Service2}To{Service3} extends Construct { + // Public properties + public readonly {service1}Resource: service1.Resource; + public readonly {service2}Resource: service2.Resource; + public readonly {service3}Resource: service3.Resource; + public readonly vpc?: ec2.IVpc; + + constructor(scope: Construct, id: string, props: {Service1}To{Service2}To{Service3}Props) { + super(scope, id); + // Validation + // Resource creation + // Integration configuration + } +} +``` + +## Test Structure + +### Unit Tests (test.*.test.ts) + +```typescript +import { Template } from 'aws-cdk-lib/assertions'; +import { Stack } from 'aws-cdk-lib'; +import { {ConstructClass} } from '../lib'; + +describe('Test {ConstructClass}', () => { + test('Test default properties', () => { + const stack = new Stack(); + new {ConstructClass}(stack, 'test', {...}); + const template = Template.fromStack(stack); + template.hasResourceProperties('AWS::{Service}::{Resource}', {...}); + }); +}); +``` + +### Integration Tests (integ.*.test.ts) + +```typescript +import { App, Stack } from 'aws-cdk-lib'; +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import { {ConstructClass} } from '../lib'; + +const app = new App(); +const stack = new Stack(app, 'integ-stack'); +new {ConstructClass}(stack, 'test', {...}); +new IntegTest(app, 'IntegTest', { testCases: [stack] }); +``` + +## Package.json Structure + +Each construct package includes: + +```json +{ + "name": "@aws-solutions-constructs/aws-{service1}-{service2}", + "version": "0.0.0", + "description": "CDK Constructs for {Service1} to {Service2} integration", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "scripts": { + "build": "tsc -b .", + "lint": "eslint --config ../eslintrc.config.mjs --no-warn-ignored .", + "test": "jest --coverage", + "integ": "integ-runner --update-on-failed", + "integ-assert": "integ-runner", + "jsii": "jsii", + "jsii-pacmak": "jsii-pacmak" + }, + "jsii": { + "outdir": "dist", + "targets": { + "java": {...}, + "dotnet": {...}, + "python": {...} + } + }, + "dependencies": { + "@aws-solutions-constructs/core": "0.0.0", + "constructs": "^10.0.0" + }, + "peerDependencies": { + "@aws-solutions-constructs/core": "0.0.0", + "constructs": "^10.0.0", + "aws-cdk-lib": "^0.0.0" + } +} +``` + +## Documentation Structure (README.adoc) + +```asciidoc += aws-{service1}-{service2} + +[Stability badge] + +== Overview +[Minimal example in TypeScript, Python, Java] + +== Pattern Construct Props +[Table of all props with types and descriptions] + +== Pattern Properties +[Table of public properties] + +== Default Settings +[List of default configurations] + +== Architecture +[Diagram and resource list] + +== Example Lambda Function Implementation +[For constructs launching a Lambda function, a link to an example in github of code accessing the second resource] + +== Additional Examples +[More complex usage examples] +``` + +## Naming Conventions + +### Construct Names +- Pattern: `aws-{service1}-{service2}[-{service3}]` +- Two-service class: `{Service1}To{Service2}` (PascalCase) +- Three-service class: `{Service1}To{Service2}To{Service3}` (PascalCase) +- Props: `{Service1}To{Service2}Props` or `{Service1}To{Service2}To{Service3}Props` + +### File Names +- Main implementation: `index.ts` +- Unit tests: `{construct-name}.test.ts` +- Integration tests: `integ.{test-name}.ts` +- Snapshots: `integ.{test-name}.js.snapshot/` + +### Property Names +- Existing resource: `existing{Service}Obj` +- Override props: `{service}Props` +- Environment variables: `{RESOURCE}_NAME` (uppercase) +- VPC props: `existingVpc`, `vpcProps`, `deployVpc` + +## Build Artifacts + +Generated during build (not in source control): + +``` +aws-{service1}-{service2}/ +├── lib/ +│ ├── index.js # Compiled JavaScript +│ ├── index.d.ts # TypeScript definitions +│ └── index.js.map # Source maps +├── dist/ # JSII output for other languages +│ ├── java/ +│ ├── python/ +│ └── dotnet/ +├── coverage/ # Test coverage reports +└── node_modules/ # Dependencies +``` + +## Special Directories + +### aws-constructs-factories +Exception to the two-service pattern: +``` +aws-constructs-factories/ +├── lib/ +│ ├── s3-bucket-factory.ts +│ ├── state-machine-factory.ts +│ ├── vpc-factory.ts +│ └── sqs-queue-factory.ts +└── test/ +``` + +### resources +Shared resource utilities: +``` +resources/ +├── lib/ +│ ├── custom-resource-helper.ts +│ └── cfn-nag-suppressions.ts +└── test/ +``` diff --git a/.kiro/steering/tech.md b/.kiro/steering/tech.md new file mode 100644 index 000000000..0576b1bb8 --- /dev/null +++ b/.kiro/steering/tech.md @@ -0,0 +1,295 @@ +# AWS Solutions Constructs - Technical Implementation Guide + +## Technology Stack + +### Core Dependencies + +- **AWS CDK** - Cloud Development Kit (aws-cdk-lib) +- **TypeScript** - Primary implementation language +- **JSII** - JavaScript Interoperability Interface for multi-language support +- **Jest** - Testing framework +- **ESLint** - Code linting and style enforcement + +### Multi-Language Support + +Constructs are published to multiple package managers via JSII: +- **TypeScript/JavaScript** - NPM (`@aws-solutions-constructs/*`) +- **Python** - PyPI (`aws-solutions-constructs.*`) +- **Java** - Maven (`software.amazon.awsconstructs.services.*`) +- **.NET** - NuGet (`Amazon.SolutionsConstructs.AWS.*`) + +## Code Quality Standards + +### ESLint Configuration + +All code must comply with `eslintrc.config.mjs` rules: + +**Key rules:** +- **Naming conventions:** + - Classes: PascalCase + - Variables/parameters: camelCase or UPPER_CASE + - No leading/trailing underscores + +- **TypeScript:** + - No `require()` - use ES6 imports + - No `var` - use `const` or `let` + - Prefer arrow functions + - Consistent type assertions + +- **Code style:** + - Max line length: 150 characters + - Semicolons required + - No console.log statements + - No trailing spaces + - Prefer `const` over `let` + - No consecutive blank lines + +- **License header:** + - All files must include Apache 2.0 license header found in source/patterns/@aws-solutions-constructs/licence-header.js + +### TypeScript Configuration + +**Compiler options:** +- Target: ES2018 +- Module: CommonJS +- Strict mode enabled +- Declaration files generated + +## Build System + +### NPM Scripts + +Standard scripts in each construct's `package.json`: + +```json +{ + "scripts": { + "build": "tsc -b .", + "lint": "eslint --config ../eslintrc.config.mjs --no-warn-ignored .", + "lint-fix": "eslint --config ../eslintrc.config.mjs --ext=.js,.ts --fix .", + "test": "jest --coverage", + "clean": "tsc -b --clean", + "watch": "tsc -b -w", + "integ": "integ-runner --update-on-failed", + "integ-assert": "integ-runner", + "jsii": "jsii", + "jsii-pacmak": "jsii-pacmak", + "build+lint+test": "npm run jsii && npm run lint && npm test && npm run integ-assert" + } +} +``` + +### JSII Configuration + +Multi-language packaging configuration: + +```json +{ + "jsii": { + "outdir": "dist", + "targets": { + "java": { + "package": "software.amazon.awsconstructs.services.{construct}", + "maven": { + "groupId": "software.amazon.awsconstructs", + "artifactId": "{construct}" + } + }, + "dotnet": { + "namespace": "Amazon.SolutionsConstructs.AWS.{Construct}", + "packageId": "Amazon.SolutionsConstructs.AWS.{Construct}" + }, + "python": { + "distName": "aws-solutions-constructs.aws-{construct}", + "module": "aws_solutions_constructs.aws_{construct}" + } + } + } +} +``` + +## Implementation Patterns + +### Resource Creation Pattern + +Constructs delegate resource creation to core helpers: + +```typescript +import * as defaults from '@aws-solutions-constructs/core'; + +// Validate props +defaults.CheckLambdaProps(props); +defaults.CheckDynamoDBProps(props); + +// Create resources using helpers +this.lambdaFunction = defaults.buildLambdaFunction(this, { + existingLambdaObj: props.existingLambdaObj, + lambdaFunctionProps: props.lambdaFunctionProps +}); + +this.dynamoTable = defaults.buildDynamoDBTable(this, { + existingTableObj: props.existingTableObj, + dynamoTableProps: props.dynamoTableProps +}); +``` + +### IAM Permission Pattern + +Grant least-privilege permissions between resources: + +```typescript +// Grant Lambda permissions to DynamoDB +const tablePermissions = props.tablePermissions || 'ReadWrite'; + +if (tablePermissions === 'All') { + this.dynamoTable.grantFullAccess(this.lambdaFunction); +} else if (tablePermissions === 'Read') { + this.dynamoTable.grantReadData(this.lambdaFunction); +} else if (tablePermissions === 'Write') { + this.dynamoTable.grantWriteData(this.lambdaFunction); +} else { + this.dynamoTable.grantReadWriteData(this.lambdaFunction); +} +``` + +### Environment Variable Pattern + +Pass resource identifiers to compute resources: + +```typescript +const envVarName = props.tableEnvironmentVariableName || 'DDB_TABLE_NAME'; + +this.lambdaFunction.addEnvironment(envVarName, this.dynamoTable.tableName); +``` + +### VPC Configuration Pattern + +Optional VPC deployment for compute resources: + +```typescript +import * as ec2 from 'aws-cdk-lib/aws-ec2'; + +// Validate VPC props +defaults.CheckVpcProps(props); + +// Create or use existing VPC +if (props.deployVpc || props.existingVpc) { + this.vpc = defaults.buildVpc(scope, { + existingVpc: props.existingVpc, + defaultVpcProps: defaults.DefaultVpcProps(), + userVpcProps: props.vpcProps, + constructVpcProps: { + enableDnsHostnames: true, + enableDnsSupport: true + } + }); + + // Add VPC endpoints + defaults.AddAwsServiceEndpoint(scope, this.vpc, defaults.ServiceEndpointTypes.DYNAMODB); +} +``` + +## Core Module Architecture + +### Helper Function Naming + +- `build{Service}()` - Create and configure a resource +- `Check{Service}Props()` - Validate prop combinations +- `add{Service}Permissions()` - Grant IAM permissions +- `Default{Service}Props()` - Return default properties + +### Validation Functions + +Core provides validation to prevent conflicting props: + +```typescript +// Prevents both existingLambdaObj and lambdaFunctionProps +defaults.CheckLambdaProps(props); + +// Prevents both existingVpc and deployVpc +defaults.CheckVpcProps(props); + +// Validates list values +defaults.CheckListValues( + ['All', 'Read', 'ReadWrite', 'Write'], + [props.tablePermissions], + 'table permission' +); +``` + +## Development Workflow + +### Adding a New Construct + +1. **Create directory structure:** + ```bash + mkdir aws-{service1}-{service2} + cd aws-{service1}-{service2} + mkdir lib test + ``` + +2. **Implement lib/index.ts:** + - Add license header + - Define props interface + - Implement construct class + - Use core helpers + +3. **Add tests:** + - Unit tests in `test/{construct}.test.ts` + - Integration tests in `test/integ.*.ts` + +4. **Configure package.json:** + - Set name, description + - Configure JSII targets + - Add dependencies + +5. **Run build pipeline:** + ```bash + npm run build+lint+test + ``` + +### Linting Workflow + +```bash +# Check for issues +npm run lint + +# Auto-fix issues +npm run lint-fix +``` + +## Common Patterns + +### Conditional Resource Creation + +```typescript +let bucket: s3.Bucket; + +if (props.existingBucketObj) { + bucket = props.existingBucketObj; +} else { + bucket = defaults.buildS3Bucket(this, { + bucketProps: props.bucketProps + }).bucket; +} +``` + +### Event Source Mapping + +```typescript +// Lambda triggered by DynamoDB Stream +this.lambdaFunction.addEventSource( + new DynamoEventSource(this.dynamoTable, { + startingPosition: lambda.StartingPosition.TRIM_HORIZON, + batchSize: 1 + }) +); +``` + +### CloudWatch Logs Configuration + +```typescript +const logGroup = defaults.buildLogGroup(this, 'LogGroup', { + logGroupProps: props.logGroupProps +}); +``` diff --git a/.kiro/steering/test.md b/.kiro/steering/test.md new file mode 100644 index 000000000..5ad97c16b --- /dev/null +++ b/.kiro/steering/test.md @@ -0,0 +1,244 @@ +# AWS Solutions Constructs - Testing Guide + +## Testing Framework + +### Overview + +Tests use Jest with CDK-specific extensions to verify constructs: +- **Unit tests** - Verify synthesized CloudFormation templates +- **Integration tests** - Deploy to AWS and capture snapshots + +## Unit Testing with Jest (`test.*.test.ts`) + - Instantiate construct with various prop combinations + - Use CDK assertions to verify template resources + - Check IAM policies, environment variables, configurations + - Test coverage (with meaningful validation) of 95% of LOC or greater is required + +## Testing Existing Resources +When writing a test that sends existing resources to a construct, use these methods to create the following types of resources: +* S3 Bucket - use defaults.CreateScrapBucket() +* VPC - use defaults.getTestVpc() +* Step Functions State Machine - use defaults.CreateTestStateMachine() +* Step Functions Definition Bocy - use defaults.CreateTestStateMachineDefinitionBody() +* Elasticache memcached - use defaults.CreateTestCache() +* API Gateway - use defaults.CreateTestApi() + + +### Basic Test Structure + +Tests instantiate constructs and verify the synthesized CloudFormation template: + +```typescript +import { Template } from 'aws-cdk-lib/assertions'; +import { Stack } from 'aws-cdk-lib'; +import { LambdaToDynamoDB } from '../lib'; + +test('check lambda function properties', () => { + const stack = new Stack(); + + new LambdaToDynamoDB(stack, 'test', { + lambdaFunctionProps: { + code: lambda.Code.fromAsset(`${__dirname}/lambda`), + runtime: lambda.Runtime.NODEJS_22_X, + handler: 'index.handler' + } + }); + + const template = Template.fromStack(stack); + template.hasResourceProperties('AWS::Lambda::Function', { + Handler: "index.handler", + Runtime: "nodejs22.x" + }); +}); +``` + +## CDK Assertion Patterns + +### Using Match Functions + +**Use Match functions for wildcards:** +```typescript +import { Match } from 'aws-cdk-lib/assertions'; + +// For string patterns with hashes +template.hasResourceProperties('AWS::IAM::Role', { + RoleName: Match.stringLikeRegexp('MyRole-.*') +}); + +// For array matching +template.hasResourceProperties('AWS::Lambda::Function', { + Environment: { + Variables: Match.objectLike({ + TABLE_NAME: Match.anyValue() + }) + } +}); + +// For array contents +template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: Match.arrayWith([ + Match.objectLike({ + Effect: 'Allow', + Action: 's3:GetObject' + }) + ]) + } +}); +``` + +**Important:** Use `Match.arrayWith()` and `Match.objectLike()` instead of `expect.objectContaining()` - the expect functions don't work in CDK assertion context. + +### IAM Policy Testing + +When testing IAM policies, verify both the policy statements AND that the policy is attached to the correct principal: + +```typescript +// Check the policy has correct statements +template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: Match.arrayWith([ + Match.objectLike({ + Effect: 'Allow', + Action: 'dynamodb:PutItem', + Resource: { 'Fn::GetAtt': ['MyTable', 'Arn'] } + }) + ]) + }, + // Verify it's attached to the correct role + Roles: [{ + Ref: 'MyLambdaFunctionServiceRole' + }] +}); +``` + +## Integration Testing + +### Overview + +Integration tests use the CDK `integ-runner` tool to verify constructs work correctly when deployed to AWS. There should be a test that validates default functionality and variations that test major architectural variations (examples - with and without a vpc; with existing resource or newly deployed resource - existing means not created by the construct, it is still created in the test and passed into the construct). There are no code coverage requirements for integration tests. + +**Test files:** `test/integ.*.ts` + - Deploy actual resources to AWS + - Verify end-to-end functionality + - Controlled by `integ.config.json` + +Each integration test: +1. Defines a full deployment of the construct in a specific scenario +2. Actually deploys the construct to AWS to capture a snapshot +3. Stores the snapshot in `test/integ.*.js.snapshot/` directory +4. On subsequent runs, synthesizes the test and compares output to the snapshot + +### Integration Test Structure + +```typescript +import { App, Stack } from 'aws-cdk-lib'; +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import { LambdaToDynamoDB } from '../lib'; +import { generateIntegStackName, SetConsistentFeatureFlags } from '@aws-solutions-constructs/core'; + +const app = new App(); +const stack = new Stack(app, generateIntegStackName(__filename)); +SetConsistentFeatureFlags(stack); + +new LambdaToDynamoDB(stack, 'test', { + lambdaFunctionProps: { + code: lambda.Code.fromAsset(`${__dirname}/lambda`), + runtime: lambda.Runtime.NODEJS_22_X, + handler: 'index.handler' + } +}); + +new IntegTest(app, 'IntegTest', { + testCases: [stack] +}); +``` + +### Integration Test Workflow + +**1. Initial snapshot creation:** +```bash +npm run integ +``` +- Deploys construct to AWS +- Captures CloudFormation template as snapshot +- Stores in `test/integ.{test-name}.js.snapshot/` + +**2. Verification on code changes:** +```bash +npm run integ-assert +``` +- Synthesizes the `integ.*.ts` file +- Compares synthesized template to stored snapshot +- Fails if templates don't match + +**3. Update snapshots after intentional changes:** +```bash +npm run integ +``` +- Re-deploys and updates snapshots + +### Integration Test Commands + +- `npm run integ` - Run tests and update snapshots on failure +- `npm run integ-no-clean` - Run without cleaning up resources +- `npm run integ-assert` - Assert against existing snapshots (no deployment) + +### Snapshot Structure + +``` +test/integ.{test-name}.js.snapshot/ +├── asset.*/ # Asset files +├── cdk.out # CDK output +├── integ.json # Integration test metadata +├── manifest.json # Asset manifest +├── tree.json # Construct tree +└── {stack-name}.template.json # CloudFormation template +``` + +## Testing Workflow + +### Running Tests + +```bash +# Run unit tests +npm test + +# Run with coverage +npm test -- --coverage + +# Update snapshots +npm test -- -u + +# Run integration tests +npm run integ + +# Assert integration tests +npm run integ-assert +``` + +## Debugging Tips + +### Template Inspection + +```typescript +// Print synthesized template +const template = Template.fromStack(stack); +console.log(JSON.stringify(template.toJSON(), null, 2)); +``` + +### Resource Counting + +```typescript +// Count specific resources +template.resourceCountIs('AWS::Lambda::Function', 1); +template.resourceCountIs('AWS::DynamoDB::Table', 1); +``` + +### Property Debugging + +```typescript +// Find all resources of a type +const resources = template.findResources('AWS::IAM::Role'); +console.log(JSON.stringify(resources, null, 2)); +``` diff --git a/CHANGELOG.md b/CHANGELOG.md index dbdd417d0..10f6628b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.96.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.95.1...v2.96.0) (2025-11-26) + +Built on CDK 2.223.0 + +### Features + +* **aws-lambda-translate:** new construct ([#1434](https://github.com/awslabs/aws-solutions-constructs/issues/1434)) ([717bc01](https://github.com/awslabs/aws-solutions-constructs/commit/717bc0120c73fab7f897dde7302a3da965067406)) + ## [2.95.1](https://github.com/awslabs/aws-solutions-constructs/compare/v2.95.0...v2.95.1) (2025-11-14) Built on CDK 2.223.0 diff --git a/THIRD_PARTY_LICENSE.txt b/THIRD_PARTY_LICENSE.txt index b2c1c18a8..42a2b9267 100644 --- a/THIRD_PARTY_LICENSE.txt +++ b/THIRD_PARTY_LICENSE.txt @@ -22,7 +22,7 @@ Apache-2.0: @aws-cdk/asset-awscli-v1@2.2.242 Apache-2.0: @aws-cdk/asset-node-proxy-agent-v6@2.1.0 Apache-2.0: @aws-cdk/cloud-assembly-schema@48.10.0 Apache-2.0: @aws-cdk/integ-tests-alpha@2.163.1-alpha.0 -Apache-2.0: @aws-cdk/integ-tests-alpha@2.220.0-alpha.0 +Apache-2.0: @aws-cdk/integ-tests-alpha@2.223.0-alpha.0 Apache-2.0: @aws-crypto/crc32@5.2.0 Apache-2.0: @aws-crypto/crc32c@5.2.0 Apache-2.0: @aws-crypto/sha1-browser@5.2.0 @@ -75,12 +75,10 @@ Apache-2.0: @humanfs/core@0.19.1 Apache-2.0: @humanfs/node@0.16.7 Apache-2.0: @humanwhocodes/module-importer@1.0.1 Apache-2.0: @humanwhocodes/retry@0.4.3 -Apache-2.0: @jsii/check-node@1.106.0 -Apache-2.0: @jsii/check-node@1.113.0 -Apache-2.0: @jsii/check-node@1.114.1 Apache-2.0: @jsii/check-node@1.115.0 -Apache-2.0: @jsii/spec@1.114.1 +Apache-2.0: @jsii/check-node@1.119.0 Apache-2.0: @jsii/spec@1.115.0 +Apache-2.0: @jsii/spec@1.119.0 Apache-2.0: @smithy/abort-controller@4.1.1 Apache-2.0: @smithy/chunked-blob-reader-native@4.1.0 Apache-2.0: @smithy/chunked-blob-reader@5.1.0 @@ -134,25 +132,23 @@ Apache-2.0: @smithy/util-uri-escape@4.1.0 Apache-2.0: @smithy/util-utf8@2.3.0 Apache-2.0: @smithy/util-utf8@4.1.0 Apache-2.0: @smithy/util-waiter@4.1.1 -Apache-2.0: aws-cdk-lib@2.220.0 +Apache-2.0: aws-cdk-lib@2.223.0 Apache-2.0: baseline-browser-mapping@2.8.6 Apache-2.0: bser@2.1.1 -Apache-2.0: codemaker@1.114.1 +Apache-2.0: codemaker@1.119.0 Apache-2.0: constructs@10.4.2 Apache-2.0: doctrine@2.1.0 Apache-2.0: eslint-visitor-keys@3.4.3 Apache-2.0: eslint-visitor-keys@4.2.1 Apache-2.0: fb-watchman@2.0.2 Apache-2.0: human-signals@2.1.0 -Apache-2.0: jsii-pacmak@1.114.1 -Apache-2.0: jsii-reflect@1.114.1 -Apache-2.0: jsii-rosetta@5.7.2 -Apache-2.0: jsii@5.7.22 +Apache-2.0: jsii-pacmak@1.119.0 +Apache-2.0: jsii-reflect@1.119.0 +Apache-2.0: jsii-rosetta@5.9.14 Apache-2.0: jsii@5.9.8 Apache-2.0: log4js@6.9.1 -Apache-2.0: oo-ascii-tree@1.114.1 +Apache-2.0: oo-ascii-tree@1.119.0 Apache-2.0: typescript@4.7.4 -Apache-2.0: typescript@5.7.3 Apache-2.0: typescript@5.9.3 Apache-2.0: walker@1.0.8 Apache-2.0: workerpool@6.5.1 @@ -836,5 +832,5 @@ License: (MIT OR CC0-1.0) ******************* (MIT OR CC0-1.0): type-fest@0.21.3 -Total libraries: 773 +Total libraries: 769 diff --git a/deployment/v2/publish-docs.sh b/deployment/v2/publish-docs.sh index 1747f9602..a6c6ee800 100755 --- a/deployment/v2/publish-docs.sh +++ b/deployment/v2/publish-docs.sh @@ -37,7 +37,9 @@ find source/patterns -name "README.adoc" -type f | while read file; do # Copy the file with the new name cp "$file" "documentation/${parent_dir}.adoc" - cp "${dir_name}/${parent_dir}.png" "documentation/images/" + for img in "${dir_name}"/aws-*.png; do + cp "$img" "documentation/images/" + done # remove the copyright notices, as the web site will add another perl -i -0pe "s/© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n/\n/g" "documentation/${parent_dir}.adoc" diff --git a/deployment/v2/refresh-multiple-tests.sh b/deployment/v2/refresh-multiple-tests.sh index 6c0699f89..87e9b9015 100755 --- a/deployment/v2/refresh-multiple-tests.sh +++ b/deployment/v2/refresh-multiple-tests.sh @@ -30,6 +30,7 @@ aws-cognito-apigateway-lambda aws-constructs-factories aws-dynamodbstreams-lambda aws-dynamodbstreams-lambda-elasticsearch-kibana +aws-dynamodbstreams-pipes-stepfunctions aws-eventbridge-kinesisfirehose-s3 aws-eventbridge-kinesisstreams aws-eventbridge-lambda @@ -75,6 +76,7 @@ aws-lambda-sqs-lambda aws-lambda-ssmstringparameter aws-lambda-stepfunctions aws-lambda-transcribe +aws-lambda-translate aws-openapigateway-lambda aws-route53-alb aws-route53-apigateway @@ -85,6 +87,7 @@ aws-s3-stepfunctions aws-sns-lambda aws-sns-sqs aws-sqs-lambda +aws-sqs-pipes-stepfunctions aws-wafwebacl-alb aws-wafwebacl-apigateway aws-wafwebacl-appsync diff --git a/documentation/api-reference.adoc b/documentation/api-reference.adoc index 6dea208a4..d55a33210 100644 --- a/documentation/api-reference.adoc +++ b/documentation/api-reference.adoc @@ -246,6 +246,9 @@ include::aws-lambda-ssmstringparameter.adoc[leveloffset=+1] include::aws-lambda-stepfunctions.adoc[leveloffset=+1] +include::aws-lambda-transcribe.adoc[leveloffset=+1] + + include::aws-openapigateway-lambda.adoc[leveloffset=+1] diff --git a/documentation/aws-alb-lambda.adoc b/documentation/aws-alb-lambda.adoc index 746ab0dd7..762e23abb 100644 --- a/documentation/aws-alb-lambda.adoc +++ b/documentation/aws-alb-lambda.adoc @@ -57,7 +57,7 @@ const certificate = acm.Certificate.fromCertificateArn( const constructProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, listenerProps: { @@ -137,7 +137,7 @@ ListenerCertificate listenerCertificate = ListenerCertificate // .build()); new AlbToLambda(this, "AlbToLambdaPattern", new AlbToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-apigateway-lambda.adoc b/documentation/aws-apigateway-lambda.adoc index c135ba666..be3631844 100644 --- a/documentation/aws-apigateway-lambda.adoc +++ b/documentation/aws-apigateway-lambda.adoc @@ -49,7 +49,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.apigatewaylambda.*; new ApiGatewayToLambda(this, "ApiGatewayToLambdaPattern", new ApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-cloudfront-apigateway-lambda.adoc b/documentation/aws-cloudfront-apigateway-lambda.adoc index 95d09e493..b6ae487bd 100644 --- a/documentation/aws-cloudfront-apigateway-lambda.adoc +++ b/documentation/aws-cloudfront-apigateway-lambda.adoc @@ -52,7 +52,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new CloudFrontToApiGatewayToLambda(this, 'test-cloudfront-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, apiGatewayProps: { @@ -109,7 +109,7 @@ import software.amazon.awsconstructs.services.cloudfrontapigatewaylambda.CloudFr new CloudFrontToApiGatewayToLambda(this, "ApiGatewayToLambdaPattern", new CloudFrontToApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) // execution environment + .runtime(Runtime.NODEJS_22_X) // execution environment .code(Code.fromAsset("lambda")) // code loaded from the `lambda` directory (under root, next to `src`) .handler("hello.handler") // file is `hello`, function is `handler` .build()) diff --git a/documentation/aws-cloudfront-apigateway.adoc b/documentation/aws-cloudfront-apigateway.adoc index 7eabc95e7..5af556394 100644 --- a/documentation/aws-cloudfront-apigateway.adoc +++ b/documentation/aws-cloudfront-apigateway.adoc @@ -51,7 +51,7 @@ import * as api from 'aws-cdk-lib/aws-apigateway'; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }; @@ -121,7 +121,7 @@ import software.amazon.awscdk.services.apigateway.*; import software.amazon.awsconstructs.services.cloudfrontapigateway.*; final Function lambdaFunction = Function.Builder.create(this, "IndexHandler") - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build(); diff --git a/documentation/aws-cloudfront-s3.adoc b/documentation/aws-cloudfront-s3.adoc index 0a5adb3ef..343580783 100644 --- a/documentation/aws-cloudfront-s3.adoc +++ b/documentation/aws-cloudfront-s3.adoc @@ -203,6 +203,7 @@ set the following defaults: all responses from CloudFront Distribution * CloudFront originPath set to `'/'` * Create an Origin Access Control to access S3 bucket +* The construct will assign the origin created by the construct to any `DistributionProps.additionalBehaviors` provided that do not have an origin specified. === Amazon S3 Bucket diff --git a/documentation/aws-cognito-apigateway-lambda.adoc b/documentation/aws-cognito-apigateway-lambda.adoc index da95e7baa..6867dff0c 100644 --- a/documentation/aws-cognito-apigateway-lambda.adoc +++ b/documentation/aws-cognito-apigateway-lambda.adoc @@ -52,7 +52,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' } }); @@ -93,7 +93,7 @@ import software.amazon.awsconstructs.services.cognitoapigatewaylambda.*; new CognitoToApiGatewayToLambda(this, "test-cognito-apigateway-lambda", new CognitoToApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -119,7 +119,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const construct = new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, apiGatewayProps: { @@ -193,7 +193,7 @@ final CognitoToApiGatewayToLambda construct = new CognitoToApiGatewayToLambda(th "test-cognito-apigateway-lambda", new CognitoToApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-constructs-factories.adoc b/documentation/aws-constructs-factories.adoc index 850a0f394..761f5741d 100644 --- a/documentation/aws-constructs-factories.adoc +++ b/documentation/aws-constructs-factories.adoc @@ -174,7 +174,7 @@ to the access log bucket) == Architecture -image::images/aws-constructs-factories.png["Diagram showing the S3 bucket and Access Log bucket created by the factory.",scaledwidth=100%] +image::images/aws-constructs-factories-s3.png["Diagram showing the S3 bucket and Access Log bucket created by the factory.",scaledwidth=100%] [[step-functions-state-machines-docs]] == Step Functions State Machines @@ -302,7 +302,7 @@ name collisions. == Architecture -image::sf-architecture.png["Diagram showing the State Machine, CloudWatch Logs and Alarms, and IAM Role launched by the factory.",scaledwidth=100%] +image::images/aws-constructs-factories-sf.png["Diagram showing the State Machine, CloudWatch Logs and Alarms, and IAM Role launched by the factory.",scaledwidth=100%] [[sqs-queues-docs]] == SQS Queues @@ -415,7 +415,7 @@ can override) == Architecture -image::sqs-architecture.png["Diagram showing the KMS keys, SQS Queue and Dead Letter Queue launched by the factory.",scaledwidth=100%] +image::images/aws-constructs-factories-sqs.png["Diagram showing the KMS keys, SQS Queue and Dead Letter Queue launched by the factory.",scaledwidth=100%] [[vpc-docs]] == Virtual Private Cloud (VPC) @@ -527,7 +527,7 @@ Security Groups. Wnile the architecture deployed will vary depending on the Subnet configuration, the diagram below represents what is deployed if the client requests PUBLIC and PRIVATE_WITH_EGRESS subnet. -image::vpc-architecture.png["Diagram showing the VPC, Subnets, Route Tables, Internet Gateway, NAT Gateways, Interface Endpoint and Flow Log.",scaledwidth=100%] +image::images/aws-constructs-factories-vpc.png["Diagram showing the VPC, Subnets, Route Tables, Internet Gateway, NAT Gateways, Interface Endpoint and Flow Log.",scaledwidth=100%] == Github diff --git a/documentation/aws-dynamodbstreams-lambda-elasticsearch-kibana.adoc b/documentation/aws-dynamodbstreams-lambda-elasticsearch-kibana.adoc index 9d33e20c7..38cbd97a7 100644 --- a/documentation/aws-dynamodbstreams-lambda-elasticsearch-kibana.adoc +++ b/documentation/aws-dynamodbstreams-lambda-elasticsearch-kibana.adoc @@ -73,7 +73,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, domainName: 'test-domain', @@ -124,7 +124,7 @@ import software.amazon.awsconstructs.services.dynamodbstreamslambdaelasticsearch new DynamoDBStreamsToLambdaToElasticSearchAndKibana(this, "test-dynamodb-stream-lambda-elasticsearch-kibana", new DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-dynamodbstreams-lambda.adoc b/documentation/aws-dynamodbstreams-lambda.adoc index 76703516d..1dcc3f1d7 100644 --- a/documentation/aws-dynamodbstreams-lambda.adoc +++ b/documentation/aws-dynamodbstreams-lambda.adoc @@ -52,7 +52,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new DynamoDBStreamsToLambda(this, 'test-dynamodbstreams-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, }); @@ -93,7 +93,7 @@ import software.amazon.awsconstructs.services.dynamodbstreamslambda.*; new DynamoDBStreamsToLambda(this, "test-dynamodbstreams-lambda", new DynamoDBStreamsToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-eventbridge-lambda.adoc b/documentation/aws-eventbridge-lambda.adoc index 419bb9d46..1edfbbff1 100644 --- a/documentation/aws-eventbridge-lambda.adoc +++ b/documentation/aws-eventbridge-lambda.adoc @@ -51,7 +51,7 @@ import * as events from 'aws-cdk-lib/aws-events'; const constructProps: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, eventRuleProps: { @@ -104,7 +104,7 @@ import software.amazon.awsconstructs.services.eventbridgelambda.*; new EventbridgeToLambda(this, "test-eventbridge-lambda", new EventbridgeToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-iot-lambda-dynamodb.adoc b/documentation/aws-iot-lambda-dynamodb.adoc index 70596470c..5d3dea859 100644 --- a/documentation/aws-iot-lambda-dynamodb.adoc +++ b/documentation/aws-iot-lambda-dynamodb.adoc @@ -51,7 +51,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -112,7 +112,7 @@ import software.amazon.awsconstructs.services.iotlambdadynamodb.*; new IotToLambdaToDynamoDB(this, "test-iot-lambda-dynamodb-stack", new IotToLambdaToDynamoDBProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-iot-lambda.adoc b/documentation/aws-iot-lambda.adoc index d586301ea..2b481191b 100644 --- a/documentation/aws-iot-lambda.adoc +++ b/documentation/aws-iot-lambda.adoc @@ -49,7 +49,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: IotToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -110,7 +110,7 @@ import software.amazon.awsconstructs.services.iotlambda.*; new IotToLambda(this, "test-iot-lambda-integration", new IotToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-kinesisstreams-lambda.adoc b/documentation/aws-kinesisstreams-lambda.adoc index 4c91671ba..e2d5bb2d6 100644 --- a/documentation/aws-kinesisstreams-lambda.adoc +++ b/documentation/aws-kinesisstreams-lambda.adoc @@ -55,7 +55,7 @@ new KinesisStreamsToLambda(this, 'KinesisToLambdaPattern', { batchSize: 1 }, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -108,7 +108,7 @@ new KinesisStreamsToLambda(this, "KinesisToLambdaPattern", new KinesisStreamsToL .batchSize(1) .build()) .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-lambda-bedrockinferenceprofile.adoc b/documentation/aws-lambda-bedrockinferenceprofile.adoc index 5a80c28d4..fbb4ce32c 100644 --- a/documentation/aws-lambda-bedrockinferenceprofile.adoc +++ b/documentation/aws-lambda-bedrockinferenceprofile.adoc @@ -64,7 +64,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToBedrockInferenceProfile(this, 'LambdaToBedrockPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) }, @@ -90,7 +90,7 @@ lambda_bedrock.LambdaToBedrockinferenceprofile( self, 'bedrock-construct', bedrock_model_id="amazon.nova-lite-v1:0", lambda_function_props=_lambda.FunctionProps( - runtime=_lambda.Runtime.NODEJS_20_X, + runtime=_lambda.Runtime.NODEJS_22_X, code=_lambda.Code.from_asset('lambda'), handler='index.handler', ) @@ -111,7 +111,7 @@ import software.amazon.awsconstructs.services.lambdabedrockinferenceprofile.*; new LambdaToBedrockinferenceprofile(this, "ApiGatewayToLambdaPattern", new LambdaToBedrockinferenceprofileProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-lambda-dynamodb.adoc b/documentation/aws-lambda-dynamodb.adoc index 44e1541c6..f9838db34 100644 --- a/documentation/aws-lambda-dynamodb.adoc +++ b/documentation/aws-lambda-dynamodb.adoc @@ -50,7 +50,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, }; @@ -92,7 +92,7 @@ import software.amazon.awsconstructs.services.lambdadynamodb.*; new LambdaToDynamoDB(this, "test_lambda_dynamodb_stack", new LambdaToDynamoDBProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -206,6 +206,10 @@ Key image::images/aws-lambda-dynamodb.png["Diagram showing the Lambda function, CloudWatch log group, DynamoDB table and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call DynamoDB, here is a DynamoDB example for CreateTableCommand, PutCommand, GetCommand, DeleteCommand, UpdateCommand, and more: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/dynamodb/scenarios/basic.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-dynamodb[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-elasticachememcached.adoc b/documentation/aws-lambda-elasticachememcached.adoc index 2d4f42104..7b53f9e92 100644 --- a/documentation/aws-lambda-elasticachememcached.adoc +++ b/documentation/aws-lambda-elasticachememcached.adoc @@ -51,7 +51,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToElasticachememcached(this, 'LambdaToElasticachememcachedPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -92,7 +92,7 @@ import software.amazon.awsconstructs.services.lambdaelasticachememcached.*; new LambdaToElasticachememcached(this, "LambdaToCachePattern", new LambdaToElasticachememcachedProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-lambda-elasticsearch-kibana.adoc b/documentation/aws-lambda-elasticsearch-kibana.adoc index d1d9f81e6..8451e9561 100644 --- a/documentation/aws-lambda-elasticsearch-kibana.adoc +++ b/documentation/aws-lambda-elasticsearch-kibana.adoc @@ -71,7 +71,7 @@ import * as lambda from "aws-cdk-lib/aws-lambda"; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }; @@ -125,7 +125,7 @@ import software.amazon.awsconstructs.services.lambdaelasticsearchkibana.*; new LambdaToElasticSearchAndKibana(this, "sample", new LambdaToElasticSearchAndKibanaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-lambda-eventbridge.adoc b/documentation/aws-lambda-eventbridge.adoc index ae930cea4..04eacd51a 100644 --- a/documentation/aws-lambda-eventbridge.adoc +++ b/documentation/aws-lambda-eventbridge.adoc @@ -49,7 +49,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToEventbridge(this, 'LambdaToEventbridgePattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.lambdaeventbridge.*; new LambdaToEventbridge(this, "LambdaToEventbridgePattern", new LambdaToEventbridgeProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -199,6 +199,10 @@ and higher functions) image::images/aws-lambda-eventbridge.png["Diagram showing the Lambda function, CloudWatch log group, EventBridge bus and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call EventBridge, here is a EventBridge example for PutEventsCommand: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/eventbridge/actions/put-events.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-eventbridge[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-kendra.adoc b/documentation/aws-lambda-kendra.adoc index 6932254df..9d17debe7 100644 --- a/documentation/aws-lambda-kendra.adoc +++ b/documentation/aws-lambda-kendra.adoc @@ -62,7 +62,7 @@ import * as s3 from "aws-cdk-lib/aws-s3"; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }; diff --git a/documentation/aws-lambda-kinesisfirehose.adoc b/documentation/aws-lambda-kinesisfirehose.adoc index fc103fd52..21eb670cc 100644 --- a/documentation/aws-lambda-kinesisfirehose.adoc +++ b/documentation/aws-lambda-kinesisfirehose.adoc @@ -54,7 +54,7 @@ const existingFirehoseDeliveryStream = previouslyCreatedKinesisFirehoseToS3Const new LambdaToKinesisFirehose(this, 'LambdaToFirehosePattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) }, @@ -106,7 +106,7 @@ existingFirehoseDeliveryStream = previouslyCreatedKinesisFirehoseToS3Construct.k new LambdaToKinesisFirehose(this, "LambdaToFirehosePattern", new LambdaToKinesisFirehoseProps.Builder() .existingKinesisFirehose(existingFirehoseDeliveryStream) .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -209,6 +209,10 @@ not change this Stream. image::images/aws-lambda-kinesisfirehose.png["Diagram showing the Lambda function, Kinesis firehose and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call Firehose, here is an example of calling Firehose: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/python/example_code/firehose/scenarios/firehose-put-actions/firehose.py['example']. (this example is in Python, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-kinesisfirehose[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-kinesisstreams.adoc b/documentation/aws-lambda-kinesisstreams.adoc index 44c29c80d..4028ad525 100644 --- a/documentation/aws-lambda-kinesisstreams.adoc +++ b/documentation/aws-lambda-kinesisstreams.adoc @@ -50,7 +50,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToKinesisStreams(this, 'LambdaToKinesisStreams', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -93,7 +93,7 @@ import software.amazon.awsconstructs.services.lambdakinesisstreams.*; new LambdaToKinesisStreams(this, "LambdaToKinesisStreams", new LambdaToKinesisStreamsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -207,6 +207,10 @@ Managed CMK image::images/aws-lambda-kinesisstreams.png["Diagram showing the Lambda function, Kinesis data stream and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call Kinesis, here is an example of calling Kinesis PutRecords: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_create_job.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-kinesisstreams[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-opensearch.adoc b/documentation/aws-lambda-opensearch.adoc index ab68d454f..ccd143e6b 100644 --- a/documentation/aws-lambda-opensearch.adoc +++ b/documentation/aws-lambda-opensearch.adoc @@ -49,7 +49,7 @@ import * as lambda from "aws-cdk-lib/aws-lambda"; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }; @@ -103,7 +103,7 @@ import software.amazon.awsconstructs.services.lambdaopensearch.*; new LambdaToOpenSearch(this, "sample", new LambdaToOpenSearchProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-lambda-s3.adoc b/documentation/aws-lambda-s3.adoc index c1ead4869..c9b922683 100644 --- a/documentation/aws-lambda-s3.adoc +++ b/documentation/aws-lambda-s3.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToS3(this, 'LambdaToS3Pattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -89,7 +89,7 @@ import software.amazon.awsconstructs.services.lambdas3.*; new LambdaToS3(this, "LambdaToS3Pattern", new LambdaToS3Props.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -223,6 +223,10 @@ storage after 90 days image::images/aws-lambda-s3.png["Diagram showing the Lambda function, S3 bucket and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call S3, here are examples of many different S3 operations: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/s3/actions['examples']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-s3[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-sagemakerendpoint.adoc b/documentation/aws-lambda-sagemakerendpoint.adoc index 48427730e..791e7a022 100644 --- a/documentation/aws-lambda-sagemakerendpoint.adoc +++ b/documentation/aws-lambda-sagemakerendpoint.adoc @@ -134,7 +134,7 @@ new LambdaToSagemakerEndpoint(this, "LambdaToSagemakerEndpointPattern", .executionRoleArn("executionRoleArn") .build()) .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .timeout(Duration.minutes(5)) @@ -266,6 +266,10 @@ and higher functions). image::images/aws-lambda-sagemakerendpoint.png["Diagram showing the Lambda function, SageMaker endpoint, CloudWatch log group and IAM roles created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to interact with SageMaker, this repo has several SageMaker examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sagemaker['examples']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-sagemakerendpoint[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-secretsmanager.adoc b/documentation/aws-lambda-secretsmanager.adoc index d3309509b..f9f3b6bf1 100644 --- a/documentation/aws-lambda-secretsmanager.adoc +++ b/documentation/aws-lambda-secretsmanager.adoc @@ -50,7 +50,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: LambdaToSecretsmanagerProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, code: lambda.Code.fromAsset(`lambda`), handler: 'index.handler' }, @@ -95,7 +95,7 @@ import software.amazon.awsconstructs.services.lambdasecretsmanager.*; new LambdaToSecretsmanager(this, "test-lambda-secretsmanager-stack", new LambdaToSecretsmanagerProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -210,6 +210,10 @@ and higher functions) image::images/aws-lambda-secretsmanager.png["Diagram showing the Lambda function, Secrets Manager secret, CloudWatch log group and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to get a Secret from Secrets Manager, there is example code available here: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/secrets-manager/actions/get-secret-value.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-secretsmanager[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-sns.adoc b/documentation/aws-lambda-sns.adoc index 202d541de..e76e933f6 100644 --- a/documentation/aws-lambda-sns.adoc +++ b/documentation/aws-lambda-sns.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToSns(this, 'test-lambda-sns', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.lambdasns.*; new LambdaToSns(this, "test-lambda-sns-stack", new LambdaToSnsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -218,6 +218,10 @@ and higher functions) image::images/aws-lambda-sns.png["Diagram showing the Lambda function, SNS topic and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call SNS, here are many examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns/actions['example']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-sns[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-sqs-lambda.adoc b/documentation/aws-lambda-sqs-lambda.adoc index 86c5b572e..1db57eb8a 100644 --- a/documentation/aws-lambda-sqs-lambda.adoc +++ b/documentation/aws-lambda-sqs-lambda.adoc @@ -51,12 +51,12 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToSqsToLambda(this, 'LambdaToSqsToLambdaPattern', { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`producer-lambda`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`consumer-lambda`) } @@ -103,12 +103,12 @@ import software.amazon.awsconstructs.services.lambdasqslambda.*; new LambdaToSqsToLambda(this, "LambdaToSqsToLambdaPattern", new LambdaToSqsToLambdaProps.Builder() .producerLambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("producer-lambda")) .handler("index.handler") .build()) .consumerLambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("consumer-lambda")) .handler("index.handler") .build()) @@ -256,6 +256,10 @@ Managed KMS Key. image::images/aws-lambda-sqs-lambda.png["Diagram showing the Lambda functions, SQS queue and dlq, CloudWatch log groups and IAM roles created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function interact with SQS, here many examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sqs/actions['examples']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-sqs-lambda[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-sqs.adoc b/documentation/aws-lambda-sqs.adoc index 4c03ae5ca..9529ac287 100644 --- a/documentation/aws-lambda-sqs.adoc +++ b/documentation/aws-lambda-sqs.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToSqs(this, 'LambdaToSqsPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.lambdasqs.*; new LambdaToSqs(this, "test-lambda-sqs-stack", new LambdaToSqsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -238,6 +238,10 @@ KMS Key. image::images/aws-lambda-sqs.png["Diagram showing the Lambda function, SQS queue and dlq, CloudWatch log group and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function interact with SQS, here many examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sqs/actions['examples']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-sqs[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-ssmstringparameter.adoc b/documentation/aws-lambda-ssmstringparameter.adoc index b57e42458..533c7fdab 100644 --- a/documentation/aws-lambda-ssmstringparameter.adoc +++ b/documentation/aws-lambda-ssmstringparameter.adoc @@ -52,7 +52,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, code: lambda.Code.fromAsset(`lambda`), handler: 'index.handler' }, @@ -102,7 +102,7 @@ import software.amazon.awsconstructs.services.lambdassmstringparameter.*; new LambdaToSsmstringparameter(this, "test-lambda-ssmstringparameter-stack", new LambdaToSsmstringparameterProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-lambda-stepfunctions.adoc b/documentation/aws-lambda-stepfunctions.adoc index 9ec72200c..0d08f6556 100644 --- a/documentation/aws-lambda-stepfunctions.adoc +++ b/documentation/aws-lambda-stepfunctions.adoc @@ -52,7 +52,7 @@ const startState = new stepfunctions.Pass(this, 'StartState'); new LambdaToStepfunctions(this, 'LambdaToStepfunctionsPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) }, @@ -106,7 +106,7 @@ final Pass startState = new Pass(this, "StartState"); new LambdaToStepfunctions(this, "test-lambda-stepfunctions-stack", new LambdaToStepfunctionsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -226,6 +226,10 @@ and higher functions) image::images/aws-lambda-stepfunctions.png["Diagram showing the Lambda function, Step Functions state machine and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to work with Step Functions, here are several examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/stepfunctions['examples']. (these examples are in Python, but examples in other languages can also be found at this site) + == Github Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-stepfunctions[Github repo] for this pattern to view the code, read/create issues and pull requests and more. diff --git a/documentation/aws-lambda-transcribe.adoc b/documentation/aws-lambda-transcribe.adoc new file mode 100644 index 000000000..704214124 --- /dev/null +++ b/documentation/aws-lambda-transcribe.adoc @@ -0,0 +1,288 @@ +//!!NODE_ROOT
+//== aws-lambda-transcribe module + +[.topic] += aws-lambda-transcribe +:info_doctype: section +:info_title: aws-lambda-transcribe + + +image:https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge[Stability:Experimental] + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Reference Documentation*: +|https://docs.aws.amazon.com/solutions/latest/constructs/ +|=== + +[width="100%",cols="<46%,54%",options="header",] +|=== +|*Language* |*Package* +|image:https://docs.aws.amazon.com/cdk/api/latest/img/python32.png[Python +Logo] Python |`aws_solutions_constructs.aws_lambda_transcribe` + +|image:https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png[Typescript +Logo] Typescript |`@aws-solutions-constructs/aws-lambda-transcribe` + +|image:https://docs.aws.amazon.com/cdk/api/latest/img/java32.png[Java +Logo] Java |`software.amazon.awsconstructs.services.lambdatranscribe` +|=== + +== Overview + +This AWS Solutions Construct implements an AWS Lambda function connected +to Amazon S3 buckets for use with Amazon Transcribe. The construct creates +a source bucket for audio files and a destination bucket for transcription +results, with appropriate IAM permissions for the Lambda function to interact +with both buckets and Amazon Transcribe service. + +Here is a minimal deployable pattern definition: + +==== +[role="tablist"] +Typescript:: ++ +[source,typescript] +---- +import { Construct } from 'constructs'; +import { Stack, StackProps } from 'aws-cdk-lib'; +import { LambdaToTranscribe } from '@aws-solutions-constructs/aws-lambda-transcribe'; +import * as lambda from 'aws-cdk-lib/aws-lambda'; + +new LambdaToTranscribe(this, 'LambdaToTranscribePattern', { + lambdaFunctionProps: { + runtime: lambda.Runtime.NODEJS_22_X, + handler: 'index.handler', + code: lambda.Code.fromAsset(`lambda`) + } +}); +---- + +Python:: ++ +[source,python] +---- +from aws_solutions_constructs.aws_lambda_transcribe import LambdaToTranscribe +from aws_cdk import ( + aws_lambda as _lambda, + Stack +) +from constructs import Construct + +LambdaToTranscribe(self, 'LambdaToTranscribePattern', + lambda_function_props=_lambda.FunctionProps( + code=_lambda.Code.from_asset('lambda'), + runtime=_lambda.Runtime.PYTHON_3_11, + handler='index.handler' + ) + ) +---- + +Java:: ++ +[source,java] +---- +import software.constructs.Construct; + +import software.amazon.awscdk.Stack; +import software.amazon.awscdk.StackProps; +import software.amazon.awscdk.services.lambda.*; +import software.amazon.awscdk.services.lambda.Runtime; +import software.amazon.awsconstructs.services.lambdatranscribe.*; + +new LambdaToTranscribe(this, "LambdaToTranscribePattern", new LambdaToTranscribeProps.Builder() + .lambdaFunctionProps(new FunctionProps.Builder() + .runtime(Runtime.NODEJS_22_X) + .code(Code.fromAsset("lambda")) + .handler("index.handler") + .build()) + .build()); +---- +==== + +== Pattern Construct Props + +[width="100%",cols="<30%,<35%,35%",options="header",] +|=== +|*Name* |*Type* |*Description* +|existingLambdaObj? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html[`lambda.Function`] +|Existing instance of Lambda Function object, providing both this and +`lambdaFunctionProps` will cause an error. + +|lambdaFunctionProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.FunctionProps.html[`lambda.FunctionProps`] +|Optional user provided props to override the default props for the +Lambda function. + +|existingSourceBucketObj? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Existing instance of S3 Bucket object for source audio files. If this is provided, then also +providing sourceBucketProps is an error. + +|sourceBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the source S3 +Bucket. + +|existingDestinationBucketObj? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Existing instance of S3 Bucket object for transcription results. If this is provided, then also +providing destinationBucketProps is an error. + +|destinationBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the destination S3 +Bucket. + +|useSameBucket? |`boolean` |Whether to use the same S3 bucket for both source and destination files. +When true, only the source bucket will be created and used for both purposes. Default: false + +|existingVpc? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html[`ec2.IVpc`] +|An optional, existing VPC into which this pattern should be deployed. +When deployed in a VPC, the Lambda function will use ENIs in the VPC to +access network resources and Interface Endpoints will be created in +the VPC for Amazon S3 and Amazon Transcribe. If an existing VPC is provided, the `deployVpc` +property cannot be `true`. This uses `ec2.IVpc` to allow clients to +supply VPCs that exist outside the stack using the +https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Vpc.html#static-fromwbrlookupscope-id-options[`ec2.Vpc.fromLookup()`] +method. + +|vpcProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.VpcProps.html[`ec2.VpcProps`] +|Optional user provided properties to override the default properties +for the new VPC. `enableDnsHostnames`, `enableDnsSupport`, `natGateways` +and `subnetConfiguration` are set by the pattern, so any values for +those properties supplied here will be overridden. If `deployVpc` is not +`true` then this property will be ignored. + +|deployVpc? |`boolean` |Whether to create a new VPC based on `vpcProps` +into which to deploy this pattern. Setting this to true will deploy the +minimal, most private VPC to run the pattern. + +|sourceBucketEnvironmentVariableName? |`string` |Optional Name for the Lambda +function environment variable set to the name of the source bucket. Default: +SOURCE_BUCKET_NAME + +|destinationBucketEnvironmentVariableName? |`string` |Optional Name for the Lambda +function environment variable set to the name of the destination bucket. Default: +DESTINATION_BUCKET_NAME + +|sourceLoggingBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the source S3 +Logging Bucket. + +|destinationLoggingBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the destination S3 +Logging Bucket. + +|logSourceS3AccessLogs? |boolean |Whether to turn on Access Logging for the source S3 +bucket. Creates an S3 bucket with associated storage costs for the logs. +Enabling Access Logging is a best practice. default - true + +|logDestinationS3AccessLogs? |boolean |Whether to turn on Access Logging for the destination S3 +bucket. Creates an S3 bucket with associated storage costs for the logs. +Enabling Access Logging is a best practice. default - true +|=== + +== Pattern Properties + +[width="100%",cols="<30%,<35%,35%",options="header",] +|=== +|*Name* |*Type* |*Description* +|lambdaFunction +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html[`lambda.Function`] +|Returns an instance of the Lambda function created by the pattern. + +|sourceBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of the source S3 bucket if it is created by the pattern. + +|destinationBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of the destination S3 bucket if it is created by the pattern. + +|sourceLoggingBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of s3.Bucket created by the construct as the +logging bucket for the source bucket. + +|destinationLoggingBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of s3.Bucket created by the construct as the +logging bucket for the destination bucket. + +|vpc? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html[`ec2.IVpc`] +|Returns an interface on the VPC used by the pattern (if any). This may +be a VPC created by the pattern or the VPC supplied to the pattern +constructor. + +|sourceBucketInterface +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Returns an interface of s3.IBucket used by the construct for the source bucket whether created by the pattern or supplied from the client. + +|destinationBucketInterface +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Returns an interface of s3.IBucket used by the construct for the destination bucket whether created by the pattern or supplied from the client. +|=== + +== Default settings + +Out of the box implementation of the Construct without any override will +set the following defaults: + +=== AWS Lambda Function + +* Configure limited privilege access IAM role for Lambda function +* Enable reusing connections with Keep-Alive for NodeJs Lambda function +* Enable X-Ray Tracing +* Set Environment Variables +** (default) SOURCE_BUCKET_NAME +** (default) DESTINATION_BUCKET_NAME +** AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x +and higher functions) +* Grant permissions to use Amazon Transcribe service, write permissions to the source bucket, and read permissions to the destination bucket + +=== Amazon S3 Buckets + +* Configure Access logging for both S3 Buckets +* Enable server-side encryption for both S3 Buckets using AWS managed KMS Key +* Enforce encryption of data in transit +* Turn on the versioning for both S3 Buckets +* Don't allow public access for both S3 Buckets +* Retain the S3 Buckets when deleting the CloudFormation stack +* Applies Lifecycle rule to move noncurrent object versions to Glacier +storage after 90 days + +=== Amazon Transcribe Service + +* The Transcribe service will have read access to the source bucket and write permissions to the destination bucket +* Lambda function will have permissions to start transcription jobs, get job status, and list transcription jobs + +=== Amazon VPC + +* If deployVpc is true, a minimal VPC will be created with: +** Interface Endpoints for Amazon S3 and Amazon Transcribe +** Private subnets for Lambda function +** Appropriate security groups and routing + +== Architecture + + +image::images/aws-lambda-transcribe.png["Diagram showing the Lambda function, source and destination S3 buckets, Amazon Transcribe service, and IAM roles created by the construct",scaledwidth=100%] + +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call Transcribe, here is an example of calling Transcribe: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_create_job.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) + +== Github + +Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-transcribe[Github repo] for this pattern to view the code, read/create issues and pull requests and more. + +''''' + +© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/documentation/aws-lambda-translate.adoc b/documentation/aws-lambda-translate.adoc new file mode 100644 index 000000000..fec83474d --- /dev/null +++ b/documentation/aws-lambda-translate.adoc @@ -0,0 +1,302 @@ +//!!NODE_ROOT
+//== aws-lambda-translate module + +[.topic] += aws-lambda-translate +:info_doctype: section +:info_title: aws-lambda-translate + + +image:https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge[Stability:Experimental] + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Reference Documentation*: +|https://docs.aws.amazon.com/solutions/latest/constructs/ +|=== + +[width="100%",cols="<46%,54%",options="header",] +|=== +|*Language* |*Package* +|image:https://docs.aws.amazon.com/cdk/api/latest/img/python32.png[Python +Logo] Python |`aws_solutions_constructs.aws_lambda_translate` + +|image:https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png[Typescript +Logo] Typescript |`@aws-solutions-constructs/aws-lambda-translate` + +|image:https://docs.aws.amazon.com/cdk/api/latest/img/java32.png[Java +Logo] Java |`software.amazon.awsconstructs.services.lambdatranslate` +|=== + +== Overview + +This AWS Solutions Construct implements an AWS Lambda function connected +to Amazon Translate service. For asynchronous translation jobs, the construct +can optionally create source and destination S3 buckets with appropriate IAM +permissions for the Lambda function to interact with both buckets and Amazon +Translate service. + +Here is a minimal deployable pattern definition: + +==== +[role="tablist"] +Typescript:: ++ +[source,typescript] +---- +import { Construct } from 'constructs'; +import { Stack, StackProps } from 'aws-cdk-lib'; +import { LambdaToTranslate } from '@aws-solutions-constructs/aws-lambda-translate'; +import * as lambda from 'aws-cdk-lib/aws-lambda'; + +new LambdaToTranslate(this, 'LambdaToTranslatePattern', { + lambdaFunctionProps: { + runtime: lambda.Runtime.NODEJS_22_X, + handler: 'index.handler', + code: lambda.Code.fromAsset(`lambda`) + } +}); +---- + +Python:: ++ +[source,python] +---- +from aws_solutions_constructs.aws_lambda_translate import LambdaToTranslate +from aws_cdk import ( + aws_lambda as _lambda, + Stack +) +from constructs import Construct + +LambdaToTranslate(self, 'LambdaToTranslatePattern', + lambda_function_props=_lambda.FunctionProps( + code=_lambda.Code.from_asset('lambda'), + runtime=_lambda.Runtime.PYTHON_3_11, + handler='index.handler' + ) + ) +---- + +Java:: ++ +[source,java] +---- +import software.constructs.Construct; + +import software.amazon.awscdk.Stack; +import software.amazon.awscdk.StackProps; +import software.amazon.awscdk.services.lambda.*; +import software.amazon.awscdk.services.lambda.Runtime; +import software.amazon.awsconstructs.services.lambdatranslate.*; + +new LambdaToTranslate(this, "LambdaToTranslatePattern", new LambdaToTranslateProps.Builder() + .lambdaFunctionProps(new FunctionProps.Builder() + .runtime(Runtime.NODEJS_22_X) + .code(Code.fromAsset("lambda")) + .handler("index.handler") + .build()) + .build()); +---- +==== + +== Pattern Construct Props + +[width="100%",cols="<30%,<35%,35%",options="header",] +|=== +|*Name* |*Type* |*Description* +|existingLambdaObj? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html[`lambda.Function`] +|Existing instance of Lambda Function object, providing both this and +`lambdaFunctionProps` will cause an error. + +|lambdaFunctionProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.FunctionProps.html[`lambda.FunctionProps`] +|Optional user provided props to override the default props for the +Lambda function. + +|asyncJobs? |`boolean` |Whether to enable asynchronous translation jobs. When true, source and destination S3 buckets will be created and the Lambda function will be granted permissions to start and stop translation jobs. Default: false + +|existingSourceBucketObj? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Existing instance of S3 Bucket object for source files. If this is provided, then also +providing sourceBucketProps is an error. Only valid when asyncJobs is true. + +|sourceBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the source S3 +Bucket. Only valid when asyncJobs is true. + +|existingDestinationBucketObj? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Existing instance of S3 Bucket object for translation results. If this is provided, then also +providing destinationBucketProps is an error. Only valid when asyncJobs is true. + +|destinationBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the destination S3 +Bucket. Only valid when asyncJobs is true. + +|useSameBucket? |`boolean` |Whether to use the same S3 bucket for both source and destination files. +When true, only the source bucket will be created and used for both purposes. Only valid when asyncJobs is true. Default: false + +|additionalPermissions? |`string[]` |Optional array of additional IAM permissions to grant to the Lambda function for Amazon Translate. Default: ['translate:TranslateText', 'translate:TranslateDocument'] + +|existingVpc? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html[`ec2.IVpc`] +|An optional, existing VPC into which this pattern should be deployed. +When deployed in a VPC, the Lambda function will use ENIs in the VPC to +access network resources and Interface Endpoints will be created in +the VPC for Amazon Translate. If asyncJobs is true, Interface Endpoints for Amazon S3 will also be created. If an existing VPC is provided, the `deployVpc` +property cannot be `true`. This uses `ec2.IVpc` to allow clients to +supply VPCs that exist outside the stack using the +https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Vpc.html#static-fromwbrlookupscope-id-options[`ec2.Vpc.fromLookup()`] +method. + +|vpcProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.VpcProps.html[`ec2.VpcProps`] +|Optional user provided properties to override the default properties +for the new VPC. `enableDnsHostnames`, `enableDnsSupport`, `natGateways` +and `subnetConfiguration` are set by the pattern, so any values for +those properties supplied here will be overridden. If `deployVpc` is not +`true` then this property will be ignored. + +|deployVpc? |`boolean` |Whether to create a new VPC based on `vpcProps` +into which to deploy this pattern. Setting this to true will deploy the +minimal, most private VPC to run the pattern. + +|sourceBucketEnvironmentVariableName? |`string` |Optional Name for the Lambda +function environment variable set to the name of the source bucket. Only valid when asyncJobs is true. Default: +SOURCE_BUCKET_NAME + +|destinationBucketEnvironmentVariableName? |`string` |Optional Name for the Lambda +function environment variable set to the name of the destination bucket. Only valid when asyncJobs is true. Default: +DESTINATION_BUCKET_NAME + +|dataAccessRoleArnEnvironmentVariableName? |`string` |Optional Name for the Lambda +function environment variable set to the ARN of the IAM role used for asynchronous translation jobs. Only valid when asyncJobs is true. Default: +DATA_ACCESS_ROLE_ARN + +|sourceLoggingBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the source S3 +Logging Bucket. Only valid when asyncJobs is true. + +|destinationLoggingBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the destination S3 +Logging Bucket. Only valid when asyncJobs is true. + +|logSourceS3AccessLogs? |boolean |Whether to turn on Access Logging for the source S3 +bucket. Creates an S3 bucket with associated storage costs for the logs. +Enabling Access Logging is a best practice. Only valid when asyncJobs is true. default - true + +|logDestinationS3AccessLogs? |boolean |Whether to turn on Access Logging for the destination S3 +bucket. Creates an S3 bucket with associated storage costs for the logs. +Enabling Access Logging is a best practice. Only valid when asyncJobs is true. default - true +|=== + +== Pattern Properties + +[width="100%",cols="<30%,<35%,35%",options="header",] +|=== +|*Name* |*Type* |*Description* +|lambdaFunction +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html[`lambda.Function`] +|Returns an instance of the Lambda function created by the pattern. + +|sourceBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of the source S3 bucket if it is created by the pattern. + +|destinationBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of the destination S3 bucket if it is created by the pattern. + +|sourceLoggingBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of s3.Bucket created by the construct as the +logging bucket for the source bucket. + +|destinationLoggingBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of s3.Bucket created by the construct as the +logging bucket for the destination bucket. + +|vpc? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html[`ec2.IVpc`] +|Returns an interface on the VPC used by the pattern (if any). This may +be a VPC created by the pattern or the VPC supplied to the pattern +constructor. + +|sourceBucketInterface? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Returns an interface of s3.IBucket used by the construct for the source bucket whether created by the pattern or supplied from the client. + +|destinationBucketInterface? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Returns an interface of s3.IBucket used by the construct for the destination bucket whether created by the pattern or supplied from the client. +|=== + +== Default settings + +Out of the box implementation of the Construct without any override will +set the following defaults: + +=== AWS Lambda Function + +* Configure limited privilege access IAM role for Lambda function +* Enable reusing connections with Keep-Alive for NodeJs Lambda function +* Enable X-Ray Tracing +* Set Environment Variables +** (default) SOURCE_BUCKET_NAME (when asyncJobs is true) +** (default) DESTINATION_BUCKET_NAME (when asyncJobs is true) +** (default) DATA_ACCESS_ROLE_ARN (when asyncJobs is true) +** AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x +and higher functions) +* Grant permissions to use Amazon Translate service (['translate:TranslateText', 'translate:TranslateDocument'] by default) +* When asyncJobs is true, grant permissions to start and stop batch translation jobs (translate:StartTextTranslationJob and translate:StopTextTranslationJob), read from source bucket, and read and write to destination bucket + +=== Amazon S3 Buckets (when asyncJobs is true) + +* Configure Access logging for both S3 Buckets +* Enable server-side encryption for both S3 Buckets using AWS managed KMS Key +* Enforce encryption of data in transit +* Turn on the versioning for both S3 Buckets +* Don't allow public access for both S3 Buckets +* Retain the S3 Buckets when deleting the CloudFormation stack +* Applies Lifecycle rule to move noncurrent object versions to Glacier +storage after 90 days + +=== Amazon Translate Service + +* Lambda function will have permissions to ['translate:TranslateText', 'translate:TranslateDocument'] operations by default +* When asyncJobs is true, Lambda function will have permissions to start and stop batch translation jobs +* A role granting access to the source and destination buckets will be created to pass to Translate for StartTextTranslationJob calls + +=== Amazon VPC + +* If deployVpc is true, a minimal VPC will be created with: +** Interface Endpoints for Amazon Translate +** Interface Endpoints for Amazon S3 (when asyncJobs is true) +** Private subnets for Lambda function +** Appropriate security groups and routing + +== Architecture + +**Default Implementation** + +image::images/aws-lambda-translate.png["Diagram showing the Lambda functionAmazon Translate service, and IAM role created by the construct",scaledwidth=100%] + +**Default Implementation when asyncJobs = true** + +image::images/aws-lambda-translate-async.png["Diagram showing the Lambda function, source and destination S3 buckets (when asyncJobs is true), Amazon Translate service, and IAM roles created by the construct",scaledwidth=100%] + + +== Github + +Go to the https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-lambda-translate[Github repo] for this pattern to view the code, read/create issues and pull requests and more. + +''''' + +© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/documentation/aws-openapigateway-lambda.adoc b/documentation/aws-openapigateway-lambda.adoc index 11798eaa8..2071acb69 100644 --- a/documentation/aws-openapigateway-lambda.adoc +++ b/documentation/aws-openapigateway-lambda.adoc @@ -66,7 +66,7 @@ new OpenApiGatewayToLambda(this, 'OpenApiGatewayToLambda', { { id: 'MessagesHandler', lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/messages-lambda`), } @@ -95,7 +95,7 @@ class TestStack(Stack): api_definition_asset = s3_assets.Asset(self, "ApiDefinitionAsset", path="./openapi/apiDefinition.yaml") api_integration = ApiIntegration(id="MessagesHandler", lambda_function_props={ - "runtime": lambda_.Runtime.NODEJS_20_X, + "runtime": lambda_.Runtime.NODEJS_22_X, "handler": "index.handler", "code": lambda_.Code.from_asset("./messages-lambda") }) @@ -124,14 +124,14 @@ import software.amazon.awscdk.StackProps; import java.util.Collections; -import static software.amazon.awscdk.services.lambda.Runtime.NODEJS_20_X; +import static software.amazon.awscdk.services.lambda.Runtime.NODEJS_22_X; final Asset apiDefinitionAsset = new Asset(this, "ApiDefinition", AssetProps.builder().path("openapi/apiDefinition.yaml").build()); final ApiIntegration apiIntegration = ApiIntegration.builder() .id("MessagesHandler") .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(NODEJS_20_X) + .runtime(NODEJS_22_X) .code(Code.fromAsset("messages-lambda")) .handler("index.handler") .build()) @@ -254,7 +254,7 @@ const apiIntegrations: ApiIntegration[] = [ { id: 'MessagesHandler', lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/messages-lambda`), } @@ -262,7 +262,7 @@ const apiIntegrations: ApiIntegration[] = [ { id: 'PhotosHandler', existingLambdaObj: new lambda.Function(this, 'PhotosLambda', { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/photos-lambda`), }) diff --git a/documentation/aws-s3-lambda.adoc b/documentation/aws-s3-lambda.adoc index 3d83c170c..2e6b1debc 100644 --- a/documentation/aws-s3-lambda.adoc +++ b/documentation/aws-s3-lambda.adoc @@ -49,7 +49,7 @@ import { S3ToLambdaProps, S3ToLambda } from '@aws-solutions-constructs/aws-s3-la new S3ToLambda(this, 'test-s3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, }); @@ -89,7 +89,7 @@ import software.amazon.awsconstructs.services.s3lambda.*; new S3ToLambda(this, "test-s3-lambda'", new S3ToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-sns-lambda.adoc b/documentation/aws-sns-lambda.adoc index 09d8b3b28..6005f6c69 100644 --- a/documentation/aws-sns-lambda.adoc +++ b/documentation/aws-sns-lambda.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new SnsToLambda(this, 'test-sns-lambda', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -89,7 +89,7 @@ import software.amazon.awsconstructs.services.snslambda.*; new SnsToLambda(this, "test-lambda-sqs-stack", new SnsToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-sqs-lambda.adoc b/documentation/aws-sqs-lambda.adoc index 32493de56..1b7f3a330 100644 --- a/documentation/aws-sqs-lambda.adoc +++ b/documentation/aws-sqs-lambda.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new SqsToLambda(this, 'SqsToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.sqslambda.*; new SqsToLambda(this, "SnsToSqsPattern", new SqsToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/aws-wafwebacl-apigateway.adoc b/documentation/aws-wafwebacl-apigateway.adoc index cc52c40a9..685b22d48 100644 --- a/documentation/aws-wafwebacl-apigateway.adoc +++ b/documentation/aws-wafwebacl-apigateway.adoc @@ -50,7 +50,7 @@ import { WafwebaclToApiGatewayProps, WafwebaclToApiGateway } from "@aws-solution const apiGatewayToLambda = new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -107,7 +107,7 @@ import software.amazon.awsconstructs.services.wafwebaclapigateway.*; final ApiGatewayToLambda apiGatewayToLambda = new ApiGatewayToLambda(this, "ApiGatewayToLambdaPattern", new ApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/documentation/images/aws-constructs-factories.png b/documentation/images/aws-constructs-factories-s3.png similarity index 100% rename from documentation/images/aws-constructs-factories.png rename to documentation/images/aws-constructs-factories-s3.png diff --git a/documentation/images/sf-architecture.png b/documentation/images/aws-constructs-factories-sf.png similarity index 100% rename from documentation/images/sf-architecture.png rename to documentation/images/aws-constructs-factories-sf.png diff --git a/documentation/images/sqs-architecture.png b/documentation/images/aws-constructs-factories-sqs.png similarity index 100% rename from documentation/images/sqs-architecture.png rename to documentation/images/aws-constructs-factories-sqs.png diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/vpc-architecture.png b/documentation/images/aws-constructs-factories-vpc.png similarity index 100% rename from source/patterns/@aws-solutions-constructs/aws-constructs-factories/vpc-architecture.png rename to documentation/images/aws-constructs-factories-vpc.png diff --git a/documentation/images/aws-lambda-transcribe.png b/documentation/images/aws-lambda-transcribe.png new file mode 100644 index 000000000..79d5da59b Binary files /dev/null and b/documentation/images/aws-lambda-transcribe.png differ diff --git a/documentation/images/aws-lambda-translate-async.png b/documentation/images/aws-lambda-translate-async.png new file mode 100644 index 000000000..f426641e2 Binary files /dev/null and b/documentation/images/aws-lambda-translate-async.png differ diff --git a/documentation/images/aws-lambda-translate.png b/documentation/images/aws-lambda-translate.png new file mode 100644 index 000000000..c0b608107 Binary files /dev/null and b/documentation/images/aws-lambda-translate.png differ diff --git a/documentation/welcome.adoc b/documentation/welcome.adoc index 3c4f16f24..c02354869 100644 --- a/documentation/welcome.adoc +++ b/documentation/welcome.adoc @@ -20,7 +20,7 @@ Overview -- -Publication date: *May 2025* (xref:document-revisions[Document Revisions,linkend=document-revisions]) +Publication date: *November 2025* (xref:document-revisions[Document Revisions,linkend=document-revisions]) [[what-is-the-aws-solutions-constructs-library,what-is-the-aws-solutions-constructs-library.title]] == What is AWS Solutions Constructs? @@ -49,4 +49,4 @@ Other advantages of AWS Solutions Constructs include: * Test your infrastructure code using industry-standard protocols. * Use your existing code review workflow. -The aim of AWS Solutions Constructs is to reduce the complexity and integration logic required when implementing common well-architected patterns to achieve your solution goals on AWS. \ No newline at end of file +The aim of AWS Solutions Constructs is to reduce the complexity and integration logic required when implementing common well-architected patterns to achieve your solution goals on AWS. diff --git a/integ.config.yaml b/integ.config.yaml index 4c4487afe..3bb1184bd 100644 --- a/integ.config.yaml +++ b/integ.config.yaml @@ -2,19 +2,3 @@ testMatch: - "integ.*.js" regions: - "us-east-1" - - "us-east-2" - - "us-west-1" - - "us-west-2" - - "ca-central-1" - - "sa-east-1" - - "eu-central-1" - - "eu-west-1" - - "eu-west-2" - - "eu-west-3" - - "eu-north-1" - - "eu-south-1" - - "ap-northeast-1" - - "ap-northeast-2" - - "ap-southeast-1" - - "ap-southeast-2" - - "ap-south-1" \ No newline at end of file diff --git a/source/package-lock.json b/source/package-lock.json index 081930dc0..da6af28d5 100644 --- a/source/package-lock.json +++ b/source/package-lock.json @@ -1,12 +1,12 @@ { "name": "aws-solutions-constructs", - "version": "2.94.0", + "version": "2.95.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "aws-solutions-constructs", - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { "constructs": "^10.0.0" @@ -1282,6 +1282,10 @@ "resolved": "patterns/@aws-solutions-constructs/aws-lambda-transcribe", "link": true }, + "node_modules/@aws-solutions-constructs/aws-lambda-translate": { + "resolved": "patterns/@aws-solutions-constructs/aws-lambda-translate", + "link": true + }, "node_modules/@aws-solutions-constructs/aws-openapigateway-lambda": { "resolved": "patterns/@aws-solutions-constructs/aws-openapigateway-lambda", "link": true @@ -12226,52 +12230,52 @@ } }, "patterns/@aws-solutions-constructs/aws-alb-fargate": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { "@aws-cdk/integ-tests-alpha": "2.223.0-alpha.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "@types/jest": "^27.4.0", "@types/node": "^10.3.0", "aws-cdk-lib": "2.223.0", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-alb-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { "@aws-cdk/integ-tests-alpha": "2.223.0-alpha.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "@types/jest": "^27.4.0", "@types/node": "^10.3.0", "aws-cdk-lib": "2.223.0", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-apigateway-dynamodb": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12282,16 +12286,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-apigateway-iot": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12302,16 +12306,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12322,16 +12326,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-apigateway-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12342,16 +12346,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12362,16 +12366,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-apigateway-sqs": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12382,16 +12386,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12402,16 +12406,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-cloudfront-apigateway": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12422,17 +12426,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-cloudfront-apigateway": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12443,18 +12447,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/aws-cloudfront-apigateway": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-cloudfront-oai-s3": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12464,18 +12468,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-cloudfront-s3": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12485,17 +12489,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12505,16 +12509,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-constructs-factories": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12524,16 +12528,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12543,18 +12547,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "2.94.0", - "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "2.95.1", + "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12564,19 +12568,19 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "2.94.0", - "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "2.95.1", + "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12586,8 +12590,8 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } @@ -12607,11 +12611,11 @@ } }, "patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12621,17 +12625,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12641,16 +12645,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-eventbridge-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12660,16 +12664,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-eventbridge-sns": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12679,16 +12683,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-eventbridge-sqs": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12698,16 +12702,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12717,16 +12721,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-dynamodb": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12736,16 +12740,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-eventbridge": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12755,17 +12759,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-kinesisfirehose": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12775,16 +12779,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-kinesisstreams": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12794,16 +12798,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-opensearch": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12813,16 +12817,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-s3": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12832,16 +12836,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-secretsmanager": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12851,16 +12855,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-sns": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12870,16 +12874,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-sqs": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12889,16 +12893,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-ssmstringparameter": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12908,16 +12912,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-fargate-stepfunctions": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12927,17 +12931,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12947,17 +12951,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-iot-kinesisstreams": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12967,16 +12971,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-iot-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -12986,18 +12990,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-iot-lambda": "2.94.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-iot-lambda": "2.95.1", + "@aws-solutions-constructs/aws-lambda-dynamodb": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13007,18 +13011,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/aws-iot-lambda": "2.94.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-iot-lambda": "2.95.1", + "@aws-solutions-constructs/aws-lambda-dynamodb": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-iot-s3": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13028,16 +13032,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-iot-sqs": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13047,16 +13051,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13066,16 +13070,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13085,18 +13089,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.94.0", - "@aws-solutions-constructs/aws-kinesisstreams-lambda": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.95.1", + "@aws-solutions-constructs/aws-kinesisstreams-lambda": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13106,18 +13110,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.94.0", - "@aws-solutions-constructs/aws-kinesisstreams-lambda": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.95.1", + "@aws-solutions-constructs/aws-kinesisstreams-lambda": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13127,16 +13131,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13146,16 +13150,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-dynamodb": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13165,16 +13169,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13184,16 +13188,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13203,16 +13207,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-eventbridge": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13222,37 +13226,37 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-kendra": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { "@aws-cdk/integ-tests-alpha": "2.223.0-alpha.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "@types/node": "^10.3.0", "aws-cdk-lib": "2.223.0", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13262,16 +13266,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13281,16 +13285,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-opensearch": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13300,16 +13304,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-s3": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13319,16 +13323,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13338,16 +13342,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-secretsmanager": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13357,16 +13361,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-sns": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13376,16 +13380,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-sqs": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13395,18 +13399,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-lambda-sqs": "2.94.0", - "@aws-solutions-constructs/aws-sqs-lambda": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-lambda-sqs": "2.95.1", + "@aws-solutions-constructs/aws-sqs-lambda": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13416,18 +13420,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/aws-lambda-sqs": "2.94.0", - "@aws-solutions-constructs/aws-sqs-lambda": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-lambda-sqs": "2.95.1", + "@aws-solutions-constructs/aws-sqs-lambda": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13437,16 +13441,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-stepfunctions": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13457,16 +13461,35 @@ "eslint-plugin-import": "^2.22.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-lambda-transcribe": { - "version": "2.94.0", + "version": "2.95.1", + "license": "Apache-2.0", + "dependencies": { + "@aws-solutions-constructs/core": "2.95.1", + "constructs": "^10.0.0" + }, + "devDependencies": { + "@aws-cdk/integ-tests-alpha": "2.223.0-alpha.0", + "@types/node": "^10.3.0", + "aws-cdk-lib": "2.223.0", + "constructs": "^10.0.0" + }, + "peerDependencies": { + "@aws-solutions-constructs/core": "2.95.1", + "aws-cdk-lib": "^2.223.0", + "constructs": "^10.0.0" + } + }, + "patterns/@aws-solutions-constructs/aws-lambda-translate": { + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13476,17 +13499,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-openapigateway-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13498,37 +13521,37 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-route53-alb": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { "@aws-cdk/integ-tests-alpha": "2.223.0-alpha.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "@types/node": "^10.3.0", "aws-cdk-lib": "2.223.0", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-route53-apigateway": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13538,16 +13561,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-s3-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13557,16 +13580,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-s3-sns": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13576,16 +13599,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-s3-sqs": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13595,17 +13618,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-s3-stepfunctions": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13615,17 +13638,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-sns-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13635,16 +13658,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-sns-sqs": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13654,16 +13677,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-sqs-lambda": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13673,17 +13696,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13693,18 +13716,18 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-wafwebacl-alb": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/aws-route53-alb": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-route53-alb": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13714,17 +13737,17 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/aws-route53-alb": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/aws-route53-alb": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13734,16 +13757,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-wafwebacl-appsync": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13753,16 +13776,16 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront": { - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13772,13 +13795,13 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "patterns/@aws-solutions-constructs/core": { - "version": "2.94.0", + "version": "2.95.1", "bundleDependencies": [ "deepmerge", "npmlog", @@ -13814,7 +13837,7 @@ "license": "MIT" }, "patterns/@aws-solutions-constructs/resources": { - "version": "2.94.0", + "version": "2.95.1", "bundleDependencies": [ "@aws-sdk/client-kms", "@aws-sdk/client-s3" @@ -13823,7 +13846,7 @@ "dependencies": { "@aws-sdk/client-kms": "^3.478.0", "@aws-sdk/client-s3": "^3.478.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "devDependencies": { @@ -13834,7 +13857,7 @@ "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.adoc index 0490f3027..f2b3f2aaa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.adoc @@ -57,7 +57,7 @@ const certificate = acm.Certificate.fromCertificateArn( const constructProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, listenerProps: { @@ -137,7 +137,7 @@ ListenerCertificate listenerCertificate = ListenerCertificate // .build()); new AlbToLambda(this, "AlbToLambdaPattern", new AlbToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/alblam-privateApiExistingResources.assets.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/alblam-privateApiExistingResources.assets.json index e5bb25472..afd0afd82 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/alblam-privateApiExistingResources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/alblam-privateApiExistingResources.assets.json @@ -46,16 +46,16 @@ } } }, - "2b25c6b68498a444d806f4efdb076919a1845f5dd34cec199e803d1380fea667": { + "45bbbfe1488ba1beb93dea16fe62fe72a98ccffe96c2a8720f916bc1672739d8": { "displayName": "alblam-privateApiExistingResources Template", "source": { "path": "alblam-privateApiExistingResources.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-aae59aa6": { + "current_account-us-east-1-7098049a": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "2b25c6b68498a444d806f4efdb076919a1845f5dd34cec199e803d1380fea667.json", + "objectKey": "45bbbfe1488ba1beb93dea16fe62fe72a98ccffe96c2a8720f916bc1672739d8.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/alblam-privateApiExistingResources.template.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/alblam-privateApiExistingResources.template.json index 863f96032..61d4fd015 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/alblam-privateApiExistingResources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/alblam-privateApiExistingResources.template.json @@ -794,7 +794,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/manifest.json index 7619ab365..954f20ef3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/2b25c6b68498a444d806f4efdb076919a1845f5dd34cec199e803d1380fea667.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/45bbbfe1488ba1beb93dea16fe62fe72a98ccffe96c2a8720f916bc1672739d8.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/tree.json index 0c4312f4a..cc5f3ffb5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiExistingResources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-privateApiExistingResources":{"id":"alblam-privateApiExistingResources","path":"alblam-privateApiExistingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"alblam-privateApiExistingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"alblam-privateApiExistingResources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"alblam-privateApiExistingResources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-privateApiExistingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-privateApiExistingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-privateApiExistingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-privateApiExistingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-privateApiExistingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-privateApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-privateApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-privateApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-privateApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lambda-sg":{"id":"lambda-sg","path":"alblam-privateApiExistingResources/lambda-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":false}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/lambda-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-privateApiExistingResources/lambda-sg","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-privateApiExistingResources/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-privateApiExistingResources/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-privateApiExistingResources/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-privateApiExistingResources/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["lambdasg93781054","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-privateApiExistingResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-privateApiExistingResources/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"existing-alb-alb":{"id":"existing-alb-alb","path":"alblam-privateApiExistingResources/existing-alb-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/existing-alb-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"existingalb0F60CC48"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internal","securityGroups":[{"Fn::GetAtt":["existingalbalbSecurityGroupC8DD2920","GroupId"]}],"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-privateApiExistingResources/existing-alb-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/existing-alb-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblamprivateApiExistingResourcesexistingalbalb9103CE08","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"existing-alb":{"id":"existing-alb","path":"alblam-privateApiExistingResources/existing-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/existing-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-privateApiExistingResources/existing-alb/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/existing-alb/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existingalb0F60CC48"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["existingalb0F60CC48","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-privateApiExistingResources/existing-alb/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-privateApiExistingResources/existing-alb/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-privateApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-privateApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-privateApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-privateApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-one":{"id":"test-one","path":"alblam-privateApiExistingResources/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.94.0"},"children":{"test-one-listener":{"id":"test-one-listener","path":"alblam-privateApiExistingResources/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"existingalbalb3A941601"},"port":80,"protocol":"HTTP"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-privateApiExistingResources/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"targetType":"lambda"}}}}}}},"Integ":{"id":"Integ","path":"alblam-privateApiExistingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-privateApiExistingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-privateApiExistingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-privateApiExistingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-privateApiExistingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-privateApiExistingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-privateApiExistingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-privateApiExistingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-privateApiExistingResources":{"id":"alblam-privateApiExistingResources","path":"alblam-privateApiExistingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"alblam-privateApiExistingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-privateApiExistingResources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-privateApiExistingResources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"alblam-privateApiExistingResources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"alblam-privateApiExistingResources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-privateApiExistingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-privateApiExistingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-privateApiExistingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-privateApiExistingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-privateApiExistingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-privateApiExistingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-privateApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-privateApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-privateApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-privateApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lambda-sg":{"id":"lambda-sg","path":"alblam-privateApiExistingResources/lambda-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":false}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/lambda-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-privateApiExistingResources/lambda-sg","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-privateApiExistingResources/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-privateApiExistingResources/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-privateApiExistingResources/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-privateApiExistingResources/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["lambdasg93781054","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-privateApiExistingResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-privateApiExistingResources/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"existing-alb-alb":{"id":"existing-alb-alb","path":"alblam-privateApiExistingResources/existing-alb-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/existing-alb-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"existingalb0F60CC48"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internal","securityGroups":[{"Fn::GetAtt":["existingalbalbSecurityGroupC8DD2920","GroupId"]}],"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-privateApiExistingResources/existing-alb-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/existing-alb-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblamprivateApiExistingResourcesexistingalbalb9103CE08","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"existing-alb":{"id":"existing-alb","path":"alblam-privateApiExistingResources/existing-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/existing-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-privateApiExistingResources/existing-alb/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/existing-alb/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existingalb0F60CC48"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["existingalb0F60CC48","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-privateApiExistingResources/existing-alb/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-privateApiExistingResources/existing-alb/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-privateApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-privateApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-privateApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-privateApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-one":{"id":"test-one","path":"alblam-privateApiExistingResources/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.95.1"},"children":{"test-one-listener":{"id":"test-one-listener","path":"alblam-privateApiExistingResources/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"existingalbalb3A941601"},"port":80,"protocol":"HTTP"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-privateApiExistingResources/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiExistingResources/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"targetType":"lambda"}}}}}}},"Integ":{"id":"Integ","path":"alblam-privateApiExistingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-privateApiExistingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-privateApiExistingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-privateApiExistingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-privateApiExistingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-privateApiExistingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-privateApiExistingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-privateApiExistingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/alblam-privateApiNewResources.assets.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/alblam-privateApiNewResources.assets.json index 292a772a0..1aa1701b6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/alblam-privateApiNewResources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/alblam-privateApiNewResources.assets.json @@ -46,16 +46,16 @@ } } }, - "3524d3c6101afcdea3d589f9d4e73472a01969f9ef305188bb49414cb4061514": { + "a823bd165ea6d7d4bbea0daa8411b97ceee032ee4e9f43582b9cb3b07bb20a51": { "displayName": "alblam-privateApiNewResources Template", "source": { "path": "alblam-privateApiNewResources.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-ef572b8a": { + "current_account-us-east-1-1f02721e": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "3524d3c6101afcdea3d589f9d4e73472a01969f9ef305188bb49414cb4061514.json", + "objectKey": "a823bd165ea6d7d4bbea0daa8411b97ceee032ee4e9f43582b9cb3b07bb20a51.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/alblam-privateApiNewResources.template.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/alblam-privateApiNewResources.template.json index 3546745c8..3698a03f2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/alblam-privateApiNewResources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/alblam-privateApiNewResources.template.json @@ -456,7 +456,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/manifest.json index fbcec4019..1dd1ba34f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/3524d3c6101afcdea3d589f9d4e73472a01969f9ef305188bb49414cb4061514.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/a823bd165ea6d7d4bbea0daa8411b97ceee032ee4e9f43582b9cb3b07bb20a51.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/tree.json index 4b1e3fb52..c77686d4b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-privateApiNewResources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-privateApiNewResources":{"id":"alblam-privateApiNewResources","path":"alblam-privateApiNewResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-one":{"id":"test-one","path":"alblam-privateApiNewResources/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.94.0"},"children":{"test-one-alb":{"id":"test-one-alb","path":"alblam-privateApiNewResources/test-one/test-one-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"testoneE6ACFBB6"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internal","securityGroups":[{"Fn::GetAtt":["testonetestonealbSecurityGroup4DED9E2A","GroupId"]}],"subnets":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-privateApiNewResources/test-one/test-one-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblamprivateApiNewResourcestestonetestonealb8D3CF023","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"test-one":{"id":"test-one","path":"alblam-privateApiNewResources/test-one/test-one","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-privateApiNewResources/test-one/test-one/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testoneE6ACFBB6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-privateApiNewResources/test-one/test-one/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-privateApiNewResources/test-one/test-one/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctionServiceRoleDefaultPolicy6025A173","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"alblam-privateApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-privateApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-privateApiNewResources/test-one/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testoneLambdaFunctionServiceRoleE92573D3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testoneReplaceDefaultSecurityGroupsecuritygroupE46270FE","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-privateApiNewResources/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctioninlinePolicyAddedToExecutionRole028251896","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"test-one-listener":{"id":"test-one-listener","path":"alblam-privateApiNewResources/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"testonetestonealb4F263E42"},"port":80,"protocol":"HTTP"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-privateApiNewResources/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]}}],"targetType":"lambda"}}}}}}},"Vpc":{"id":"Vpc","path":"alblam-privateApiNewResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"alblam-privateApiNewResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"alblam-privateApiNewResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-privateApiNewResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-privateApiNewResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-privateApiNewResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-privateApiNewResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-privateApiNewResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-privateApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-privateApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-privateApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-privateApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-privateApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-privateApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-privateApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-privateApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"alblam-privateApiNewResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-privateApiNewResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-privateApiNewResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-privateApiNewResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-privateApiNewResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-privateApiNewResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-privateApiNewResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-privateApiNewResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-privateApiNewResources":{"id":"alblam-privateApiNewResources","path":"alblam-privateApiNewResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-one":{"id":"test-one","path":"alblam-privateApiNewResources/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.95.1"},"children":{"test-one-alb":{"id":"test-one-alb","path":"alblam-privateApiNewResources/test-one/test-one-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"testoneE6ACFBB6"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internal","securityGroups":[{"Fn::GetAtt":["testonetestonealbSecurityGroup4DED9E2A","GroupId"]}],"subnets":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-privateApiNewResources/test-one/test-one-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblamprivateApiNewResourcestestonetestonealb8D3CF023","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"test-one":{"id":"test-one","path":"alblam-privateApiNewResources/test-one/test-one","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-privateApiNewResources/test-one/test-one/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testoneE6ACFBB6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-privateApiNewResources/test-one/test-one/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-privateApiNewResources/test-one/test-one/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctionServiceRoleDefaultPolicy6025A173","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"alblam-privateApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-privateApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-privateApiNewResources/test-one/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testoneLambdaFunctionServiceRoleE92573D3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testoneReplaceDefaultSecurityGroupsecuritygroupE46270FE","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-privateApiNewResources/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctioninlinePolicyAddedToExecutionRole028251896","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-privateApiNewResources/test-one/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"test-one-listener":{"id":"test-one-listener","path":"alblam-privateApiNewResources/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"testonetestonealb4F263E42"},"port":80,"protocol":"HTTP"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-privateApiNewResources/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]}}],"targetType":"lambda"}}}}}}},"Vpc":{"id":"Vpc","path":"alblam-privateApiNewResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"alblam-privateApiNewResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"alblam-privateApiNewResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-privateApiNewResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-privateApiNewResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-privateApiNewResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-privateApiNewResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-privateApiNewResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-privateApiNewResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-privateApiNewResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-privateApiNewResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-privateApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-privateApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-privateApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-privateApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-privateApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-privateApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-privateApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-privateApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"alblam-privateApiNewResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-privateApiNewResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-privateApiNewResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-privateApiNewResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-privateApiNewResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-privateApiNewResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-privateApiNewResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-privateApiNewResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/alblam-publicApiExistingResources.assets.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/alblam-publicApiExistingResources.assets.json index a819244d2..1012a03fb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/alblam-publicApiExistingResources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/alblam-publicApiExistingResources.assets.json @@ -46,16 +46,16 @@ } } }, - "211604c1aba813cca425ce9b4e1a4574dd6c81ee6d85f80284deccb3ccf74cc2": { + "2551c2dff2c25503458955d98784a4b7430cedae6aeb1a60e4374eca78f9cefe": { "displayName": "alblam-publicApiExistingResources Template", "source": { "path": "alblam-publicApiExistingResources.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-c92f17e0": { + "current_account-us-east-1-52d3f20d": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "211604c1aba813cca425ce9b4e1a4574dd6c81ee6d85f80284deccb3ccf74cc2.json", + "objectKey": "2551c2dff2c25503458955d98784a4b7430cedae6aeb1a60e4374eca78f9cefe.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/alblam-publicApiExistingResources.template.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/alblam-publicApiExistingResources.template.json index c69e80064..01103619e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/alblam-publicApiExistingResources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/alblam-publicApiExistingResources.template.json @@ -794,7 +794,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/manifest.json index 582122b86..df6e511a6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/211604c1aba813cca425ce9b4e1a4574dd6c81ee6d85f80284deccb3ccf74cc2.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/2551c2dff2c25503458955d98784a4b7430cedae6aeb1a60e4374eca78f9cefe.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/tree.json index 79674d6f2..cb47b4026 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiExistingResources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-publicApiExistingResources":{"id":"alblam-publicApiExistingResources","path":"alblam-publicApiExistingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"alblam-publicApiExistingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"alblam-publicApiExistingResources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"alblam-publicApiExistingResources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-publicApiExistingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-publicApiExistingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-publicApiExistingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-publicApiExistingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-publicApiExistingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-publicApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-publicApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-publicApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-publicApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lambda-sg":{"id":"lambda-sg","path":"alblam-publicApiExistingResources/lambda-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":false}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/lambda-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-publicApiExistingResources/lambda-sg","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-publicApiExistingResources/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-publicApiExistingResources/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-publicApiExistingResources/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-publicApiExistingResources/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["lambdasg93781054","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-publicApiExistingResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-publicApiExistingResources/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"existing-alb-alb":{"id":"existing-alb-alb","path":"alblam-publicApiExistingResources/existing-alb-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/existing-alb-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"existingalb0F60CC48"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internal","securityGroups":[{"Fn::GetAtt":["existingalbalbSecurityGroupC8DD2920","GroupId"]}],"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-publicApiExistingResources/existing-alb-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/existing-alb-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblampublicApiExistingResourcesexistingalbalb1EA1EAA3","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"existing-alb":{"id":"existing-alb","path":"alblam-publicApiExistingResources/existing-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/existing-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-publicApiExistingResources/existing-alb/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/existing-alb/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existingalb0F60CC48"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["existingalb0F60CC48","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-publicApiExistingResources/existing-alb/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-publicApiExistingResources/existing-alb/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-publicApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-publicApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-publicApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-publicApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-one":{"id":"test-one","path":"alblam-publicApiExistingResources/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.94.0"},"children":{"test-one-listener":{"id":"test-one-listener","path":"alblam-publicApiExistingResources/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"existingalbalb3A941601"},"port":80,"protocol":"HTTP"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-publicApiExistingResources/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"targetType":"lambda"}}}}}}},"Integ":{"id":"Integ","path":"alblam-publicApiExistingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-publicApiExistingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-publicApiExistingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-publicApiExistingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-publicApiExistingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-publicApiExistingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-publicApiExistingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-publicApiExistingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-publicApiExistingResources":{"id":"alblam-publicApiExistingResources","path":"alblam-publicApiExistingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"alblam-publicApiExistingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-publicApiExistingResources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiExistingResources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"alblam-publicApiExistingResources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"alblam-publicApiExistingResources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-publicApiExistingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-publicApiExistingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-publicApiExistingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-publicApiExistingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-publicApiExistingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-publicApiExistingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-publicApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-publicApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-publicApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-publicApiExistingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lambda-sg":{"id":"lambda-sg","path":"alblam-publicApiExistingResources/lambda-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":false}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/lambda-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-publicApiExistingResources/lambda-sg","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-publicApiExistingResources/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-publicApiExistingResources/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-publicApiExistingResources/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-publicApiExistingResources/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["lambdasg93781054","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-publicApiExistingResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-publicApiExistingResources/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"existing-alb-alb":{"id":"existing-alb-alb","path":"alblam-publicApiExistingResources/existing-alb-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/existing-alb-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"existingalb0F60CC48"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internal","securityGroups":[{"Fn::GetAtt":["existingalbalbSecurityGroupC8DD2920","GroupId"]}],"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-publicApiExistingResources/existing-alb-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/existing-alb-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblampublicApiExistingResourcesexistingalbalb1EA1EAA3","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"existing-alb":{"id":"existing-alb","path":"alblam-publicApiExistingResources/existing-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/existing-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-publicApiExistingResources/existing-alb/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/existing-alb/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existingalb0F60CC48"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existingalb0F60CC48","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["existingalb0F60CC48","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-publicApiExistingResources/existing-alb/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-publicApiExistingResources/existing-alb/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-publicApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-publicApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-publicApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-publicApiExistingResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-one":{"id":"test-one","path":"alblam-publicApiExistingResources/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.95.1"},"children":{"test-one-listener":{"id":"test-one-listener","path":"alblam-publicApiExistingResources/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"existingalbalb3A941601"},"port":80,"protocol":"HTTP"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-publicApiExistingResources/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiExistingResources/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"targetType":"lambda"}}}}}}},"Integ":{"id":"Integ","path":"alblam-publicApiExistingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-publicApiExistingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-publicApiExistingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-publicApiExistingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-publicApiExistingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-publicApiExistingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-publicApiExistingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-publicApiExistingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/alblam-publicApiNewResources.assets.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/alblam-publicApiNewResources.assets.json index ea9ebc9cb..53d912e21 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/alblam-publicApiNewResources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/alblam-publicApiNewResources.assets.json @@ -46,16 +46,16 @@ } } }, - "3ae59f451d1ebb36f02252bc4672c3de1fd7a5950ef682150eb54d5d795316f1": { + "b09c3477979e988af2c9ffbd8f57201096e904c153a5f1f7cbe4df4dede1147b": { "displayName": "alblam-publicApiNewResources Template", "source": { "path": "alblam-publicApiNewResources.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-391a324d": { + "current_account-us-east-1-4c72b637": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "3ae59f451d1ebb36f02252bc4672c3de1fd7a5950ef682150eb54d5d795316f1.json", + "objectKey": "b09c3477979e988af2c9ffbd8f57201096e904c153a5f1f7cbe4df4dede1147b.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/alblam-publicApiNewResources.template.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/alblam-publicApiNewResources.template.json index b6ccf27f7..da5f64a0f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/alblam-publicApiNewResources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/alblam-publicApiNewResources.template.json @@ -460,7 +460,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/manifest.json index 1632be0de..a21a87f5e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/3ae59f451d1ebb36f02252bc4672c3de1fd7a5950ef682150eb54d5d795316f1.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/b09c3477979e988af2c9ffbd8f57201096e904c153a5f1f7cbe4df4dede1147b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/tree.json index a1498cb40..63cdb94bc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-publicApiNewResources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-publicApiNewResources":{"id":"alblam-publicApiNewResources","path":"alblam-publicApiNewResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-one":{"id":"test-one","path":"alblam-publicApiNewResources/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.94.0"},"children":{"test-one-alb":{"id":"test-one-alb","path":"alblam-publicApiNewResources/test-one/test-one-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"testoneE6ACFBB6"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internet-facing","securityGroups":[{"Fn::GetAtt":["testonetestonealbSecurityGroup4DED9E2A","GroupId"]}],"subnets":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-publicApiNewResources/test-one/test-one-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblampublicApiNewResourcestestonetestonealbE07397A7","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"test-one":{"id":"test-one","path":"alblam-publicApiNewResources/test-one/test-one","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-publicApiNewResources/test-one/test-one/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testoneE6ACFBB6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-publicApiNewResources/test-one/test-one/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-publicApiNewResources/test-one/test-one/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctionServiceRoleDefaultPolicy6025A173","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"alblam-publicApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-publicApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-publicApiNewResources/test-one/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testoneLambdaFunctionServiceRoleE92573D3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testoneReplaceDefaultSecurityGroupsecuritygroupE46270FE","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-publicApiNewResources/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctioninlinePolicyAddedToExecutionRole028251896","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"test-one-listener":{"id":"test-one-listener","path":"alblam-publicApiNewResources/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"testonetestonealb4F263E42"},"port":80,"protocol":"HTTP"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-publicApiNewResources/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]}}],"targetType":"lambda"}}}}}}},"Vpc":{"id":"Vpc","path":"alblam-publicApiNewResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"alblam-publicApiNewResources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"alblam-publicApiNewResources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-publicApiNewResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-publicApiNewResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-publicApiNewResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-publicApiNewResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-publicApiNewResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-publicApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-publicApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-publicApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-publicApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-publicApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-publicApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-publicApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-publicApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"alblam-publicApiNewResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-publicApiNewResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-publicApiNewResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-publicApiNewResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-publicApiNewResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-publicApiNewResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-publicApiNewResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-publicApiNewResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-publicApiNewResources":{"id":"alblam-publicApiNewResources","path":"alblam-publicApiNewResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-one":{"id":"test-one","path":"alblam-publicApiNewResources/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.95.1"},"children":{"test-one-alb":{"id":"test-one-alb","path":"alblam-publicApiNewResources/test-one/test-one-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"testoneE6ACFBB6"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internet-facing","securityGroups":[{"Fn::GetAtt":["testonetestonealbSecurityGroup4DED9E2A","GroupId"]}],"subnets":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-publicApiNewResources/test-one/test-one-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblampublicApiNewResourcestestonetestonealbE07397A7","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"test-one":{"id":"test-one","path":"alblam-publicApiNewResources/test-one/test-one","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-publicApiNewResources/test-one/test-one/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testoneE6ACFBB6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-publicApiNewResources/test-one/test-one/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-publicApiNewResources/test-one/test-one/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctionServiceRoleDefaultPolicy6025A173","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"alblam-publicApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-publicApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-publicApiNewResources/test-one/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testoneLambdaFunctionServiceRoleE92573D3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testoneReplaceDefaultSecurityGroupsecuritygroupE46270FE","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-publicApiNewResources/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctioninlinePolicyAddedToExecutionRole028251896","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-publicApiNewResources/test-one/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"test-one-listener":{"id":"test-one-listener","path":"alblam-publicApiNewResources/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"testonetestonealb4F263E42"},"port":80,"protocol":"HTTP"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-publicApiNewResources/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]}}],"targetType":"lambda"}}}}}}},"Vpc":{"id":"Vpc","path":"alblam-publicApiNewResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-publicApiNewResources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-publicApiNewResources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-publicApiNewResources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"alblam-publicApiNewResources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"alblam-publicApiNewResources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-publicApiNewResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-publicApiNewResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-publicApiNewResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-publicApiNewResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-publicApiNewResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-publicApiNewResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-publicApiNewResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-publicApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-publicApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-publicApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-publicApiNewResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-publicApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-publicApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-publicApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-publicApiNewResources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"alblam-publicApiNewResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-publicApiNewResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-publicApiNewResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-publicApiNewResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-publicApiNewResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-publicApiNewResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-publicApiNewResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-publicApiNewResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/alblam-twoTargets.assets.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/alblam-twoTargets.assets.json index 7071d725e..255de03a4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/alblam-twoTargets.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/alblam-twoTargets.assets.json @@ -46,16 +46,16 @@ } } }, - "3d15146a80b7fe885de8b11b41a5c95dd5c48bd8ee30ff1b79d00f5326f88dd9": { + "75231263f1d73e84a63474ddbab4a2e9feaad82289404815669a7240bc91b585": { "displayName": "alblam-twoTargets Template", "source": { "path": "alblam-twoTargets.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-278a1190": { + "current_account-us-east-1-e89c8c31": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "3d15146a80b7fe885de8b11b41a5c95dd5c48bd8ee30ff1b79d00f5326f88dd9.json", + "objectKey": "75231263f1d73e84a63474ddbab4a2e9feaad82289404815669a7240bc91b585.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/alblam-twoTargets.template.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/alblam-twoTargets.template.json index 74a0d1706..0e8c0169e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/alblam-twoTargets.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/alblam-twoTargets.template.json @@ -460,7 +460,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -1512,7 +1512,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/manifest.json index 9d036e1e9..37d0060d1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/3d15146a80b7fe885de8b11b41a5c95dd5c48bd8ee30ff1b79d00f5326f88dd9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/75231263f1d73e84a63474ddbab4a2e9feaad82289404815669a7240bc91b585.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/tree.json index 98da3d238..4a9af2dfb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.alblam-twoTargets.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-twoTargets":{"id":"alblam-twoTargets","path":"alblam-twoTargets","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-one":{"id":"test-one","path":"alblam-twoTargets/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.94.0"},"children":{"test-one-alb":{"id":"test-one-alb","path":"alblam-twoTargets/test-one/test-one-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"testoneE6ACFBB6"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internet-facing","securityGroups":[{"Fn::GetAtt":["testonetestonealbSecurityGroup4DED9E2A","GroupId"]}],"subnets":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-twoTargets/test-one/test-one-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblamtwoTargetstestonetestonealbCEEAAF66","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"test-one":{"id":"test-one","path":"alblam-twoTargets/test-one/test-one","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-twoTargets/test-one/test-one/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testoneE6ACFBB6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-twoTargets/test-one/test-one/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-twoTargets/test-one/test-one/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctionServiceRoleDefaultPolicy6025A173","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"alblam-twoTargets/test-one/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-twoTargets/test-one/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-twoTargets/test-one/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-twoTargets/test-one/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-twoTargets/test-one/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-twoTargets/test-one/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testoneLambdaFunctionServiceRoleE92573D3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testoneReplaceDefaultSecurityGroupsecuritygroupE46270FE","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-twoTargets/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctioninlinePolicyAddedToExecutionRole028251896","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-twoTargets/test-one/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"test-one-listener":{"id":"test-one-listener","path":"alblam-twoTargets/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"testonetestonealb4F263E42"},"port":80,"protocol":"HTTP"}}},"test-two-targetsRule":{"id":"test-two-targetsRule","path":"alblam-twoTargets/test-one/test-one-listener/test-two-targetsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListenerRule","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one-listener/test-two-targetsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListenerRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::ListenerRule","aws:cdk:cloudformation:props":{"actions":[{"type":"forward","targetGroupArn":{"Ref":"testtwotg2tg35BE6697"}}],"conditions":[{"field":"path-pattern","pathPatternConfig":{"values":["*admin*"]}}],"listenerArn":{"Ref":"testonetestonelistener51CF582F"},"priority":10}}}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-twoTargets/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]}}],"targetType":"lambda"}}}}}}},"Vpc":{"id":"Vpc","path":"alblam-twoTargets/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-twoTargets/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"alblam-twoTargets/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-twoTargets/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-twoTargets/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-twoTargets/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-twoTargets/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-twoTargets/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"alblam-twoTargets/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-twoTargets/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"alblam-twoTargets/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-twoTargets/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-twoTargets/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-twoTargets/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-twoTargets/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-twoTargets/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"alblam-twoTargets/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-twoTargets/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"alblam-twoTargets/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-twoTargets/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-twoTargets/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-twoTargets/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-twoTargets/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-twoTargets/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-twoTargets/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"alblam-twoTargets/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-twoTargets/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-twoTargets/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-twoTargets/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-twoTargets/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-twoTargets/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-twoTargets/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"alblam-twoTargets/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"alblam-twoTargets/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-twoTargets/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-twoTargets/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-twoTargets/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-twoTargets/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-twoTargets/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-twoTargets/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-twoTargets/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-twoTargets/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-twoTargets/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-twoTargets/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-twoTargets/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-twoTargets/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-twoTargets/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-two":{"id":"test-two","path":"alblam-twoTargets/test-two","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testtwoLambdaFunctionServiceRoleDefaultPolicy3BCA0DDD","roles":[{"Ref":"testtwoLambdaFunctionServiceRoleD100E5F8"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"alblam-twoTargets/test-two/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-twoTargets/test-two/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-twoTargets/test-two/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-twoTargets/test-two/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-twoTargets/test-two/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-twoTargets/test-two/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testtwoLambdaFunctionServiceRoleD100E5F8","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testtwoReplaceDefaultSecurityGroupsecuritygroupE62CC6C1","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-twoTargets/test-two/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testtwoLambdaFunctioninlinePolicyAddedToExecutionRole00A7D0170","roles":[{"Ref":"testtwoLambdaFunctionServiceRoleD100E5F8"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-twoTargets/test-two/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testtwoLambdaFunction0418AA26","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-twoTargets/test-two/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["testtwoLambdaFunction0418AA26","Arn"]}}],"targetType":"lambda"}}}}}}},"Integ":{"id":"Integ","path":"alblam-twoTargets/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-twoTargets/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-twoTargets/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-twoTargets/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-twoTargets/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-twoTargets/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-twoTargets/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-twoTargets/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"alblam-twoTargets":{"id":"alblam-twoTargets","path":"alblam-twoTargets","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-one":{"id":"test-one","path":"alblam-twoTargets/test-one","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.95.1"},"children":{"test-one-alb":{"id":"test-one-alb","path":"alblam-twoTargets/test-one/test-one-alb","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer","version":"2.223.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one-alb/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnLoadBalancer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::LoadBalancer","aws:cdk:cloudformation:props":{"loadBalancerAttributes":[{"key":"deletion_protection.enabled","value":"false"},{"key":"access_logs.s3.enabled","value":"true"},{"key":"access_logs.s3.bucket","value":{"Ref":"testoneE6ACFBB6"}},{"key":"access_logs.s3.prefix","value":""}],"scheme":"internet-facing","securityGroups":[{"Fn::GetAtt":["testonetestonealbSecurityGroup4DED9E2A","GroupId"]}],"subnets":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"}],"type":"application"}}},"SecurityGroup":{"id":"SecurityGroup","path":"alblam-twoTargets/test-one/test-one-alb/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":false},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one-alb/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatically created Security Group for ELB alblamtwoTargetstestonetestonealbCEEAAF66","securityGroupEgress":[{"cidrIp":"255.255.255.255/32","description":"Disallow all traffic","ipProtocol":"icmp","fromPort":252,"toPort":86}],"securityGroupIngress":[{"cidrIp":"0.0.0.0/0","ipProtocol":"tcp","fromPort":80,"toPort":80,"description":"Allow from anyone on port 80"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"test-one":{"id":"test-one","path":"alblam-twoTargets/test-one/test-one","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"alblam-twoTargets/test-one/test-one/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testoneE6ACFBB6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::127311923021:root"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:PutObject","Condition":{"StringEquals":{"s3:x-amz-acl":"bucket-owner-full-control"}},"Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]},"/AWSLogs/",{"Ref":"AWS::AccountId"},"/*"]]}},{"Action":"s3:GetBucketAcl","Effect":"Allow","Principal":{"Service":"delivery.logs.amazonaws.com"},"Resource":{"Fn::GetAtt":["testoneE6ACFBB6","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"alblam-twoTargets/test-one/test-one/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-twoTargets/test-one/test-one/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctionServiceRoleDefaultPolicy6025A173","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"alblam-twoTargets/test-one/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-twoTargets/test-one/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-twoTargets/test-one/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-twoTargets/test-one/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-twoTargets/test-one/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-twoTargets/test-one/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testoneLambdaFunctionServiceRoleE92573D3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testoneReplaceDefaultSecurityGroupsecuritygroupE46270FE","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-twoTargets/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testoneLambdaFunctioninlinePolicyAddedToExecutionRole028251896","roles":[{"Ref":"testoneLambdaFunctionServiceRoleE92573D3"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-twoTargets/test-one/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"test-one-listener":{"id":"test-one-listener","path":"alblam-twoTargets/test-one/test-one-listener","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener","version":"2.223.0","metadata":["*","*","*"]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one-listener/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListener","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::Listener","aws:cdk:cloudformation:props":{"defaultActions":[{"type":"forward","targetGroupArn":{"Ref":"testonetg2tg6459EC7C"}}],"loadBalancerArn":{"Ref":"testonetestonealb4F263E42"},"port":80,"protocol":"HTTP"}}},"test-two-targetsRule":{"id":"test-two-targetsRule","path":"alblam-twoTargets/test-one/test-one-listener/test-two-targetsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListenerRule","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/test-one-listener/test-two-targetsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnListenerRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::ListenerRule","aws:cdk:cloudformation:props":{"actions":[{"type":"forward","targetGroupArn":{"Ref":"testtwotg2tg35BE6697"}}],"conditions":[{"field":"path-pattern","pathPatternConfig":{"values":["*admin*"]}}],"listenerArn":{"Ref":"testonetestonelistener51CF582F"},"priority":10}}}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-twoTargets/test-one/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-one/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["testoneLambdaFunctionCC9B03E1","Arn"]}}],"targetType":"lambda"}}}}}}},"Vpc":{"id":"Vpc","path":"alblam-twoTargets/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"alblam-twoTargets/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"alblam-twoTargets/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-twoTargets/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-twoTargets/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-twoTargets/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-twoTargets/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-twoTargets/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"alblam-twoTargets/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-twoTargets/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"alblam-twoTargets/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-twoTargets/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-twoTargets/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-twoTargets/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-twoTargets/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-twoTargets/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"alblam-twoTargets/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"alblam-twoTargets/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"alblam-twoTargets/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-twoTargets/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-twoTargets/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-twoTargets/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-twoTargets/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-twoTargets/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-twoTargets/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"alblam-twoTargets/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"alblam-twoTargets/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"alblam-twoTargets/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"alblam-twoTargets/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"alblam-twoTargets/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"alblam-twoTargets/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"alblam-twoTargets/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"alblam-twoTargets/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"alblam-twoTargets/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"alblam-twoTargets/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"alblam-twoTargets/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"alblam-twoTargets/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"alblam-twoTargets/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"alblam-twoTargets/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"alblam-twoTargets/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"alblam-twoTargets/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-twoTargets/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-twoTargets/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-twoTargets/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"alblam-twoTargets/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"alblam-twoTargets/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"alblam-twoTargets/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"alblam-twoTargets/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-two":{"id":"test-two","path":"alblam-twoTargets/test-two","constructInfo":{"fqn":"@aws-solutions-constructs/aws-alb-lambda.AlbToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testtwoLambdaFunctionServiceRoleDefaultPolicy3BCA0DDD","roles":[{"Ref":"testtwoLambdaFunctionServiceRoleD100E5F8"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"alblam-twoTargets/test-two/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"alblam-twoTargets/test-two/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"alblam-twoTargets/test-two/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"alblam-twoTargets/test-two/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"alblam-twoTargets/test-two/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"alblam-twoTargets/test-two/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"44065ab998484f0809423b22009edee6d159633b21d16657230931448f4bec08.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testtwoLambdaFunctionServiceRoleD100E5F8","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testtwoReplaceDefaultSecurityGroupsecuritygroupE62CC6C1","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"alblam-twoTargets/test-two/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testtwoLambdaFunctioninlinePolicyAddedToExecutionRole00A7D0170","roles":[{"Ref":"testtwoLambdaFunctionServiceRoleD100E5F8"}]}}}}},"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=":{"id":"Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","path":"alblam-twoTargets/test-two/LambdaFunction/Invoke2UTWxhlfyqbT5FTn--5jvgbLgj+FfJwzswGk55DU1H--Y=","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testtwoLambdaFunction0418AA26","Arn"]},"principal":"elasticloadbalancing.amazonaws.com"}}}}},"tg2-tg":{"id":"tg2-tg","path":"alblam-twoTargets/test-two/tg2-tg","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup","version":"2.223.0"},"children":{"Resource":{"id":"Resource","path":"alblam-twoTargets/test-two/tg2-tg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticloadbalancingv2.CfnTargetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElasticLoadBalancingV2::TargetGroup","aws:cdk:cloudformation:props":{"targets":[{"id":{"Fn::GetAtt":["testtwoLambdaFunction0418AA26","Arn"]}}],"targetType":"lambda"}}}}}}},"Integ":{"id":"Integ","path":"alblam-twoTargets/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"alblam-twoTargets/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"alblam-twoTargets/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"alblam-twoTargets/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-twoTargets/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-twoTargets/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"alblam-twoTargets/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"alblam-twoTargets/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.adoc index 440ded0e2..2801cca13 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.adoc @@ -49,7 +49,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.apigatewaylambda.*; new ApiGatewayToLambda(this, "ApiGatewayToLambdaPattern", new ApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.assets.json index da648e7c8..006e780ed 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { "displayName": "test-apigateway-lambda/LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region-86d36d19": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "44af8f0cdcdb3c04b5bd9f8fca60d178a8374d0fe9e7e293464a703228cc3c18": { + "bce121237a3dec989a301980688729c1681d884eb17d8ed7d712eefd7f219a4c": { "displayName": "apilam-deployFunction Template", "source": { "path": "apilam-deployFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-0b38229a": { + "current_account-current_region-bfe2c0f7": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "44af8f0cdcdb3c04b5bd9f8fca60d178a8374d0fe9e7e293464a703228cc3c18.json", + "objectKey": "bce121237a3dec989a301980688729c1681d884eb17d8ed7d712eefd7f219a4c.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.template.json index aecc2b944..fcc20c92e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.template.json @@ -70,7 +70,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilamdeployFunctionIntegDefaultTestDeployAssert281C111D.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilamdeployFunctionIntegDefaultTestDeployAssert281C111D.assets.json index 7f7b34526..29113b954 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilamdeployFunctionIntegDefaultTestDeployAssert281C111D.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/apilamdeployFunctionIntegDefaultTestDeployAssert281C111D.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "apilamdeployFunctionIntegDefaultTestDeployAssert281C111D Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/integ.json index 5e30f41d0..191da6c2b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "apilam-deployFunction/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "apilamdeployFunctionIntegDefaultTestDeployAssert281C111D" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/manifest.json index 7d384dfe0..cab88a03f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/44af8f0cdcdb3c04b5bd9f8fca60d178a8374d0fe9e7e293464a703228cc3c18.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/bce121237a3dec989a301980688729c1681d884eb17d8ed7d712eefd7f219a4c.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -490,57 +490,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -549,7 +540,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -626,7 +620,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -770,7 +764,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -799,7 +796,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -863,7 +863,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -897,7 +900,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -920,7 +926,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -950,6 +959,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/tree.json index acef39ac7..54431e768 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-deployFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"apilam-deployFunction":{"id":"apilam-deployFunction","path":"apilam-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"test-apigateway-lambda":{"id":"test-apigateway-lambda","path":"apilam-deployFunction/test-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigateway-lambda.ApiGatewayToLambda","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole00FEF72FF","roles":[{"Ref":"testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"apilam-deployFunction/test-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"},{"endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["EDGE"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testapigatewaylambdaApiAccessLogGroupEB3253A2","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testapigatewaylambdaLambdaRestApiDeployment85334BB3a1765c45928980e423727978265730d1"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}},"ANY":{"id":"ANY","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}":{"id":"ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/*"]]}}}},"ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}":{"id":"ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testapigatewaylambdaLambdaRestApiproxy2C2C544E"},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"ANY":{"id":"ANY","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..":{"id":"ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/"]]}}}},"ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..":{"id":"ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stage":{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiCloudWatchRole6D45E039","Arn"]}}}}}},"Integ":{"id":"Integ","path":"apilam-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"apilam-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"apilam-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"apilam-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"apilam-deployFunction":{"id":"apilam-deployFunction","path":"apilam-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-apigateway-lambda":{"id":"test-apigateway-lambda","path":"apilam-deployFunction/test-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigateway-lambda.ApiGatewayToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole00FEF72FF","roles":[{"Ref":"testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"apilam-deployFunction/test-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"},{"endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["EDGE"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testapigatewaylambdaApiAccessLogGroupEB3253A2","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testapigatewaylambdaLambdaRestApiDeployment85334BB3a1765c45928980e423727978265730d1"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}},"ANY":{"id":"ANY","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}":{"id":"ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/*"]]}}}},"ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}":{"id":"ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testapigatewaylambdaLambdaRestApiproxy2C2C544E"},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"ANY":{"id":"ANY","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..":{"id":"ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/"]]}}}},"ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..":{"id":"ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.apilamdeployFunctiontestapigatewaylambdaLambdaRestApiAF929C5F.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stage":{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"apilam-deployFunction/test-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiCloudWatchRole6D45E039","Arn"]}}}}}},"Integ":{"id":"Integ","path":"apilam-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"apilam-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"apilam-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"apilam-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.assets.json index bd3dad5ac..8bb4120f5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { "displayName": "LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region-86d36d19": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "f78b287aad84e7f95fb5eeb25319f724a0276782f58a5caab73af129223a6bd6": { + "6f2dee0660de0816d020f60d5b7f857b3892458469d31a275b7aad8e3cf52f43": { "displayName": "apilam-existingFunction Template", "source": { "path": "apilam-existingFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-c41f6426": { + "current_account-current_region-7fc84149": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f78b287aad84e7f95fb5eeb25319f724a0276782f58a5caab73af129223a6bd6.json", + "objectKey": "6f2dee0660de0816d020f60d5b7f857b3892458469d31a275b7aad8e3cf52f43.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.template.json index cb73d3da9..6e3eabd2a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.template.json @@ -70,7 +70,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilamexistingFunctionIntegDefaultTestDeployAssert4238FD03.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilamexistingFunctionIntegDefaultTestDeployAssert4238FD03.assets.json index 50c1eca58..c9579253d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilamexistingFunctionIntegDefaultTestDeployAssert4238FD03.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/apilamexistingFunctionIntegDefaultTestDeployAssert4238FD03.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "apilamexistingFunctionIntegDefaultTestDeployAssert4238FD03 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/integ.json index 24a0c4686..788546019 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "apilam-existingFunction/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "apilamexistingFunctionIntegDefaultTestDeployAssert4238FD03" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/manifest.json index 2f502df87..218538be3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f78b287aad84e7f95fb5eeb25319f724a0276782f58a5caab73af129223a6bd6.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6f2dee0660de0816d020f60d5b7f857b3892458469d31a275b7aad8e3cf52f43.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -490,57 +490,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -549,7 +540,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -626,7 +620,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -770,7 +764,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -799,7 +796,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -863,7 +863,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -897,7 +900,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -920,7 +926,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -950,6 +959,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/tree.json index 2b74747a0..3d1cb06b3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-existingFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"apilam-existingFunction":{"id":"apilam-existingFunction","path":"apilam-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"apilam-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"apilam-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"apilam-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"apilam-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"apilam-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"apilam-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"apilam-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"apilam-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-apigateway-lambda":{"id":"test-apigateway-lambda","path":"apilam-existingFunction/test-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigateway-lambda.ApiGatewayToLambda","version":"2.86.0"},"children":{"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"apilam-existingFunction/test-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"},{"endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["EDGE"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testapigatewaylambdaApiAccessLogGroupEB3253A2","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testapigatewaylambdaLambdaRestApiDeployment85334BB3938813331492485ced06ab87062fb015"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}},"ANY":{"id":"ANY","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}":{"id":"ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/*"]]}}}},"ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}":{"id":"ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testapigatewaylambdaLambdaRestApiproxy2C2C544E"},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"ANY":{"id":"ANY","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..":{"id":"ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/"]]}}}},"ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..":{"id":"ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stage":{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiCloudWatchRole6D45E039","Arn"]}}}}}},"Integ":{"id":"Integ","path":"apilam-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"apilam-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"apilam-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"apilam-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"apilam-existingFunction":{"id":"apilam-existingFunction","path":"apilam-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"apilam-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"apilam-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"apilam-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"apilam-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"apilam-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"apilam-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"apilam-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"apilam-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-apigateway-lambda":{"id":"test-apigateway-lambda","path":"apilam-existingFunction/test-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigateway-lambda.ApiGatewayToLambda","version":"2.95.1"},"children":{"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"apilam-existingFunction/test-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"},{"endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["EDGE"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testapigatewaylambdaApiAccessLogGroupEB3253A2","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testapigatewaylambdaLambdaRestApiDeployment85334BB3938813331492485ced06ab87062fb015"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}},"ANY":{"id":"ANY","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}":{"id":"ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/*"]]}}}},"ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}":{"id":"ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testapigatewaylambdaLambdaRestApiproxy2C2C544E"},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"ANY":{"id":"ANY","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..":{"id":"ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/"]]}}}},"ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..":{"id":"ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.apilamexistingFunctiontestapigatewaylambdaLambdaRestApiEC1EB7CD.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stage":{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"apilam-existingFunction/test-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiCloudWatchRole6D45E039","Arn"]}}}}}},"Integ":{"id":"Integ","path":"apilam-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"apilam-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"apilam-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"apilam-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.assets.json index 984890725..e0c521b9c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { "displayName": "test-apigateway-lambda/LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region-86d36d19": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "8a512710d7499ce035c5d9d7a58fcb59ec31f6b1452d4261d7f7af4a2d1be130": { + "9a0cad16b9fc837702261c0a1771ec006e26cd905b1160f41651e5efdacf8dab": { "displayName": "apilam-no-usage-plan Template", "source": { "path": "apilam-no-usage-plan.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-b2db4150": { + "current_account-current_region-6d8c35b9": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "8a512710d7499ce035c5d9d7a58fcb59ec31f6b1452d4261d7f7af4a2d1be130.json", + "objectKey": "9a0cad16b9fc837702261c0a1771ec006e26cd905b1160f41651e5efdacf8dab.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.template.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.template.json index 747b6cf69..5220f7a9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.template.json @@ -70,7 +70,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilamnousageplanIntegDefaultTestDeployAssertFA088EA5.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilamnousageplanIntegDefaultTestDeployAssertFA088EA5.assets.json index fbcd79f33..65bf98558 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilamnousageplanIntegDefaultTestDeployAssertFA088EA5.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/apilamnousageplanIntegDefaultTestDeployAssertFA088EA5.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "apilamnousageplanIntegDefaultTestDeployAssertFA088EA5 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/integ.json index c4fe8ee62..45ee14c88 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "apilam-no-usage-plan/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "apilamnousageplanIntegDefaultTestDeployAssertFA088EA5" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/manifest.json index 374090847..aaa4fc2d6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8a512710d7499ce035c5d9d7a58fcb59ec31f6b1452d4261d7f7af4a2d1be130.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9a0cad16b9fc837702261c0a1771ec006e26cd905b1160f41651e5efdacf8dab.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -472,57 +472,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -531,7 +522,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -608,7 +602,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -752,7 +746,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -781,7 +778,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -845,7 +845,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -879,7 +882,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -902,7 +908,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -932,6 +941,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/tree.json index 5de58edcf..1d3fc88f2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.apilam-no-usage-plan.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"apilam-no-usage-plan":{"id":"apilam-no-usage-plan","path":"apilam-no-usage-plan","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"test-apigateway-lambda":{"id":"test-apigateway-lambda","path":"apilam-no-usage-plan/test-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigateway-lambda.ApiGatewayToLambda","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole00FEF72FF","roles":[{"Ref":"testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"apilam-no-usage-plan/test-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"},{"endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["EDGE"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testapigatewaylambdaApiAccessLogGroupEB3253A2","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testapigatewaylambdaLambdaRestApiDeployment85334BB3a1765c45928980e423727978265730d1"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}},"ANY":{"id":"ANY","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}":{"id":"ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/*"]]}}}},"ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}":{"id":"ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testapigatewaylambdaLambdaRestApiproxy2C2C544E"},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"ANY":{"id":"ANY","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..":{"id":"ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/"]]}}}},"ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..":{"id":"ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiCloudWatchRole6D45E039","Arn"]}}}}}},"Integ":{"id":"Integ","path":"apilam-no-usage-plan/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"apilam-no-usage-plan/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"apilam-no-usage-plan/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"apilam-no-usage-plan/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-no-usage-plan/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-no-usage-plan/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-no-usage-plan/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-no-usage-plan/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"apilam-no-usage-plan":{"id":"apilam-no-usage-plan","path":"apilam-no-usage-plan","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-apigateway-lambda":{"id":"test-apigateway-lambda","path":"apilam-no-usage-plan/test-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigateway-lambda.ApiGatewayToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole00FEF72FF","roles":[{"Ref":"testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"apilam-no-usage-plan/test-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"},{"endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["EDGE"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testapigatewaylambdaApiAccessLogGroupEB3253A2","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testapigatewaylambdaLambdaRestApiDeployment85334BB3a1765c45928980e423727978265730d1"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}},"ANY":{"id":"ANY","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}":{"id":"ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/*"]]}}}},"ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}":{"id":"ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testapigatewaylambdaLambdaRestApiproxy2C2C544E"},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}},"ANY":{"id":"ANY","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..":{"id":"ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/",{"Ref":"testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"},"/*/"]]}}}},"ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..":{"id":"ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.apilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testapigatewaylambdaLambdaFunction18FF222F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiE957E944","RootResourceId"]},"restApiId":{"Ref":"testapigatewaylambdaLambdaRestApiE957E944"}}}}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"apilam-no-usage-plan/test-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testapigatewaylambdaLambdaRestApiCloudWatchRole6D45E039","Arn"]}}}}}},"Integ":{"id":"Integ","path":"apilam-no-usage-plan/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"apilam-no-usage-plan/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"apilam-no-usage-plan/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"apilam-no-usage-plan/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-no-usage-plan/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-no-usage-plan/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"apilam-no-usage-plan/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"apilam-no-usage-plan/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts index 45fa6ae50..3a224c3eb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts @@ -195,7 +195,7 @@ test('Confirm suppression of Usage Plan', () => { const props: ApiGatewayToLambdaProps = { lambdaFunctionProps: { code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', }, createUsagePlan: false diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js new file mode 100644 index 000000000..43e0a2bd8 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Connected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js new file mode 100644 index 000000000..ff92fbcfd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Disconnected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/integ.json index 680c0d822..bb3a16b3e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "wssqs-con-discon-default-custom-route/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "wssqs-con-discon-default-custom-route/Integ/DefaultTest/DeployAssert", "assertionStackName": "wssqscondiscondefaultcustomrouteIntegDefaultTestDeployAssertB27E8B96" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/manifest.json index 23c5456e6..64e147d6c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "wssqscondiscondefaultcustomrouteIntegDefaultTestDeployAssertB27E8B96.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/60fb7059d6eda27cd036967649ae99944ad4ab3694eee70bb931bcc858abf8eb.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/49836f7411be48792a28ecf6896bdaeecbfc38c78511bd30b4969abacce82e24.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -644,24 +644,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "connectServiceRoleDefaultPolicyCE4B3DE0": [ - { - "type": "aws:cdk:logicalId", - "data": "connectServiceRoleDefaultPolicyCE4B3DE0", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } - ], - "disconnectServiceRoleDefaultPolicyD85178B8": [ - { - "type": "aws:cdk:logicalId", - "data": "disconnectServiceRoleDefaultPolicyD85178B8", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "wssqs-con-discon-default-custom-route" @@ -671,7 +653,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/tree.json index 873aed945..979a25569 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"wssqs-con-discon-default-custom-route":{"id":"wssqs-con-discon-default-custom-route","path":"wssqs-con-discon-default-custom-route","children":{"connectServiceRole":{"id":"connectServiceRole","path":"wssqs-con-discon-default-custom-route/connectServiceRole","children":{"ImportconnectServiceRole":{"id":"ImportconnectServiceRole","path":"wssqs-con-discon-default-custom-route/connectServiceRole/ImportconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/connectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"connect":{"id":"connect","path":"wssqs-con-discon-default-custom-route/connect","children":{"Code":{"id":"Code","path":"wssqs-con-discon-default-custom-route/connect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-con-discon-default-custom-route/connect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-con-discon-default-custom-route/connect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/connect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"connect.handler","role":{"Fn::GetAtt":["connectServiceRoleD6E70EFD","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-con-discon-default-custom-route/connect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/connect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"connectinlinePolicyAddedToExecutionRole0FA4FAF92","roles":[{"Ref":"connectServiceRoleD6E70EFD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-con-discon-default-custom-route/disconnectServiceRole","children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-con-discon-default-custom-route/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/disconnectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"disconnect":{"id":"disconnect","path":"wssqs-con-discon-default-custom-route/disconnect","children":{"Code":{"id":"Code","path":"wssqs-con-discon-default-custom-route/disconnect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-con-discon-default-custom-route/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-con-discon-default-custom-route/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/disconnect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-con-discon-default-custom-route/disconnect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs","children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]}},"queue":{"id":"queue","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.186.0"}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","children":{"ConnectIntegration-Permission":{"id":"ConnectIntegration-Permission","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["connectEB2081F1","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$connect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"ConnectIntegration":{"id":"ConnectIntegration","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["connectEB2081F1","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteConnectIntegration7C5EDD50"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$default-Route":{"id":"$default-Route","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route","children":{"$default":{"id":"$default","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"$default":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"\\$default"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$default","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdefaultRoutedefaultB531E839"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"customName-Route":{"id":"customName-Route","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/customName-Route","children":{"customName":{"id":"customName","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/customName-Route/customName","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/customName-Route/customName/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"customName":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"customName"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/customName-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"customName","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqscustomNameRoutecustomName5211E1DA"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.186.0","metadata":["*","*","*","*","*"]}},"Stage":{"id":"Stage","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/Stage","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/Stage/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.186.0","metadata":["*"]}},"LogGroup":{"id":"LogGroup","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LogGroup","children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.80.0"}},"Integ":{"id":"Integ","path":"wssqs-con-discon-default-custom-route/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-con-discon-default-custom-route/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-con-discon-default-custom-route/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"wssqs-con-discon-default-custom-route":{"id":"wssqs-con-discon-default-custom-route","path":"wssqs-con-discon-default-custom-route","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"connectServiceRole":{"id":"connectServiceRole","path":"wssqs-con-discon-default-custom-route/connectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportconnectServiceRole":{"id":"ImportconnectServiceRole","path":"wssqs-con-discon-default-custom-route/connectServiceRole/ImportconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/connectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"connect":{"id":"connect","path":"wssqs-con-discon-default-custom-route/connect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-con-discon-default-custom-route/connect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-con-discon-default-custom-route/connect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-con-discon-default-custom-route/connect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/connect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"connect.handler","role":{"Fn::GetAtt":["connectServiceRoleD6E70EFD","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-con-discon-default-custom-route/connect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/connect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"connectinlinePolicyAddedToExecutionRole0FA4FAF92","roles":[{"Ref":"connectServiceRoleD6E70EFD"}]}}}}}}},"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-con-discon-default-custom-route/disconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-con-discon-default-custom-route/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/disconnectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"disconnect":{"id":"disconnect","path":"wssqs-con-discon-default-custom-route/disconnect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-con-discon-default-custom-route/disconnect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-con-discon-default-custom-route/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-con-discon-default-custom-route/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/disconnect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-con-discon-default-custom-route/disconnect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}}}}}}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}}}}}}},"queue":{"id":"queue","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}}},"Policy":{"id":"Policy","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}}}}}}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.223.0","metadata":["*","*","*","*","*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"ConnectIntegration-Permission":{"id":"ConnectIntegration-Permission","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["connectEB2081F1","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$connect"]]}}}},"ConnectIntegration":{"id":"ConnectIntegration","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["connectEB2081F1","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteConnectIntegration7C5EDD50"}]]}}}}}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}}}}},"$default-Route":{"id":"$default-Route","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"$default":{"id":"$default","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"$default":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"\\$default"}}}}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$default","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdefaultRoutedefaultB531E839"}]]}}}}}},"customName-Route":{"id":"customName-Route","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/customName-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"customName":{"id":"customName","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/customName-Route/customName","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/customName-Route/customName/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"customName":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"customName"}}}}},"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/customName-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"customName","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqscustomNameRoutecustomName5211E1DA"}]]}}}}}}}},"Stage":{"id":"Stage","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/Stage","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/Stage/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}}}}},"LogGroup":{"id":"LogGroup","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"wssqs-con-discon-default-custom-route/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}}}},"Integ":{"id":"Integ","path":"wssqs-con-discon-default-custom-route/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-con-discon-default-custom-route/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-con-discon-default-custom-route/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-con-discon-default-custom-route/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqs-con-discon-default-custom-route.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqs-con-discon-default-custom-route.assets.json index 5d840814d..f763e765a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqs-con-discon-default-custom-route.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqs-con-discon-default-custom-route.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1": { + "displayName": "connect/Code", "source": { "path": "asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-5053d9d0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "60fb7059d6eda27cd036967649ae99944ad4ab3694eee70bb931bcc858abf8eb": { + "49836f7411be48792a28ecf6896bdaeecbfc38c78511bd30b4969abacce82e24": { + "displayName": "wssqs-con-discon-default-custom-route Template", "source": { "path": "wssqs-con-discon-default-custom-route.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-9d178b14": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "60fb7059d6eda27cd036967649ae99944ad4ab3694eee70bb931bcc858abf8eb.json", + "objectKey": "49836f7411be48792a28ecf6896bdaeecbfc38c78511bd30b4969abacce82e24.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqs-con-discon-default-custom-route.template.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqs-con-discon-default-custom-route.template.json index 936fa462f..a58d55829 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqs-con-discon-default-custom-route.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqs-con-discon-default-custom-route.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -218,7 +218,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqscondiscondefaultcustomrouteIntegDefaultTestDeployAssertB27E8B96.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqscondiscondefaultcustomrouteIntegDefaultTestDeployAssertB27E8B96.assets.json index 808fc2f42..dcdb71aee 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqscondiscondefaultcustomrouteIntegDefaultTestDeployAssertB27E8B96.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-con-discon-default-custom-route.js.snapshot/wssqscondiscondefaultcustomrouteIntegDefaultTestDeployAssertB27E8B96.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "wssqscondiscondefaultcustomrouteIntegDefaultTestDeployAssertB27E8B96 Template", "source": { "path": "wssqscondiscondefaultcustomrouteIntegDefaultTestDeployAssertB27E8B96.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js new file mode 100644 index 000000000..43e0a2bd8 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Connected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js new file mode 100644 index 000000000..ff92fbcfd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Disconnected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/integ.json index 2ebf61b39..d8ec4b099 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "wssqs-custom-connect-route/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "wssqs-custom-connect-route/Integ/DefaultTest/DeployAssert", "assertionStackName": "wssqscustomconnectrouteIntegDefaultTestDeployAssert158EFF93" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/manifest.json index 0f6a99252..54a79106d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "wssqscustomconnectrouteIntegDefaultTestDeployAssert158EFF93.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8e69c942e428ad38f39753b0d68f515220540b721dd98f780cb91ea0591d4244.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7e04fc07890a2da7b6a497e48ac65b0c3aec51447469a72b50510e6fcc19ea0f.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -616,24 +616,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "connectServiceRoleDefaultPolicyCE4B3DE0": [ - { - "type": "aws:cdk:logicalId", - "data": "connectServiceRoleDefaultPolicyCE4B3DE0", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } - ], - "disconnectServiceRoleDefaultPolicyD85178B8": [ - { - "type": "aws:cdk:logicalId", - "data": "disconnectServiceRoleDefaultPolicyD85178B8", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "wssqs-custom-connect-route" @@ -643,7 +625,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/tree.json index 4edef22eb..3db7406d5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"wssqs-custom-connect-route":{"id":"wssqs-custom-connect-route","path":"wssqs-custom-connect-route","children":{"connectServiceRole":{"id":"connectServiceRole","path":"wssqs-custom-connect-route/connectServiceRole","children":{"ImportconnectServiceRole":{"id":"ImportconnectServiceRole","path":"wssqs-custom-connect-route/connectServiceRole/ImportconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/connectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"connect":{"id":"connect","path":"wssqs-custom-connect-route/connect","children":{"Code":{"id":"Code","path":"wssqs-custom-connect-route/connect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-custom-connect-route/connect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-custom-connect-route/connect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/connect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"connect.handler","role":{"Fn::GetAtt":["connectServiceRoleD6E70EFD","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-custom-connect-route/connect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/connect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"connectinlinePolicyAddedToExecutionRole0FA4FAF92","roles":[{"Ref":"connectServiceRoleD6E70EFD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-custom-connect-route/disconnectServiceRole","children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-custom-connect-route/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/disconnectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"disconnect":{"id":"disconnect","path":"wssqs-custom-connect-route/disconnect","children":{"Code":{"id":"Code","path":"wssqs-custom-connect-route/disconnect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-custom-connect-route/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-custom-connect-route/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/disconnect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-custom-connect-route/disconnect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs","children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]}},"queue":{"id":"queue","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.186.0"}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","children":{"ConnectIntegration-Permission":{"id":"ConnectIntegration-Permission","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["connectEB2081F1","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$connect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"ConnectIntegration":{"id":"ConnectIntegration","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["connectEB2081F1","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteConnectIntegration7C5EDD50"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$default-Route":{"id":"$default-Route","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route","children":{"$default":{"id":"$default","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"$default":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"\\$default"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$default","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdefaultRoutedefaultB531E839"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.186.0","metadata":["*","*","*","*"]}},"Stage":{"id":"Stage","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/Stage","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/Stage/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.186.0","metadata":["*"]}},"LogGroup":{"id":"LogGroup","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LogGroup","children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.80.0"}},"Integ":{"id":"Integ","path":"wssqs-custom-connect-route/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-custom-connect-route/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"wssqs-custom-connect-route/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-custom-connect-route/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-custom-connect-route/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-custom-connect-route/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-custom-connect-route/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-custom-connect-route/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"wssqs-custom-connect-route":{"id":"wssqs-custom-connect-route","path":"wssqs-custom-connect-route","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"connectServiceRole":{"id":"connectServiceRole","path":"wssqs-custom-connect-route/connectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportconnectServiceRole":{"id":"ImportconnectServiceRole","path":"wssqs-custom-connect-route/connectServiceRole/ImportconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/connectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"connect":{"id":"connect","path":"wssqs-custom-connect-route/connect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-custom-connect-route/connect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-custom-connect-route/connect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-custom-connect-route/connect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/connect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"connect.handler","role":{"Fn::GetAtt":["connectServiceRoleD6E70EFD","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-custom-connect-route/connect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/connect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"connectinlinePolicyAddedToExecutionRole0FA4FAF92","roles":[{"Ref":"connectServiceRoleD6E70EFD"}]}}}}}}},"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-custom-connect-route/disconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-custom-connect-route/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/disconnectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"disconnect":{"id":"disconnect","path":"wssqs-custom-connect-route/disconnect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-custom-connect-route/disconnect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-custom-connect-route/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-custom-connect-route/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/disconnect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-custom-connect-route/disconnect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}}}}}}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}}}}}}},"queue":{"id":"queue","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}}},"Policy":{"id":"Policy","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}}}}}}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.223.0","metadata":["*","*","*","*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"ConnectIntegration-Permission":{"id":"ConnectIntegration-Permission","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["connectEB2081F1","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$connect"]]}}}},"ConnectIntegration":{"id":"ConnectIntegration","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["connectEB2081F1","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteConnectIntegration7C5EDD50"}]]}}}}}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}}}}},"$default-Route":{"id":"$default-Route","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"$default":{"id":"$default","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"$default":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"\\$default"}}}}},"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$default","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdefaultRoutedefaultB531E839"}]]}}}}}}}},"Stage":{"id":"Stage","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/Stage","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/Stage/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}}}}},"LogGroup":{"id":"LogGroup","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-connect-route/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}}}},"Integ":{"id":"Integ","path":"wssqs-custom-connect-route/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-custom-connect-route/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wssqs-custom-connect-route/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-custom-connect-route/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-custom-connect-route/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-custom-connect-route/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-custom-connect-route/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-custom-connect-route/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqs-custom-connect-route.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqs-custom-connect-route.assets.json index 151600e82..bd6b62ede 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqs-custom-connect-route.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqs-custom-connect-route.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1": { + "displayName": "connect/Code", "source": { "path": "asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-5053d9d0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "8e69c942e428ad38f39753b0d68f515220540b721dd98f780cb91ea0591d4244": { + "7e04fc07890a2da7b6a497e48ac65b0c3aec51447469a72b50510e6fcc19ea0f": { + "displayName": "wssqs-custom-connect-route Template", "source": { "path": "wssqs-custom-connect-route.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-a11b4020": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "8e69c942e428ad38f39753b0d68f515220540b721dd98f780cb91ea0591d4244.json", + "objectKey": "7e04fc07890a2da7b6a497e48ac65b0c3aec51447469a72b50510e6fcc19ea0f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqs-custom-connect-route.template.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqs-custom-connect-route.template.json index 393caf88b..88e400a50 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqs-custom-connect-route.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqs-custom-connect-route.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -218,7 +218,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqscustomconnectrouteIntegDefaultTestDeployAssert158EFF93.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqscustomconnectrouteIntegDefaultTestDeployAssert158EFF93.assets.json index f73c08b0d..ef4e563aa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqscustomconnectrouteIntegDefaultTestDeployAssert158EFF93.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-connect-route.js.snapshot/wssqscustomconnectrouteIntegDefaultTestDeployAssert158EFF93.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "wssqscustomconnectrouteIntegDefaultTestDeployAssert158EFF93 Template", "source": { "path": "wssqscustomconnectrouteIntegDefaultTestDeployAssert158EFF93.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js new file mode 100644 index 000000000..43e0a2bd8 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Connected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js new file mode 100644 index 000000000..ff92fbcfd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Disconnected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/integ.json index 59b1054d2..747f2a0b6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "wssqs-custom-route/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "wssqs-custom-route/Integ/DefaultTest/DeployAssert", "assertionStackName": "wssqscustomrouteIntegDefaultTestDeployAssert24F20FD3" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/manifest.json index 84d345ff8..ba92b0c04 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "wssqscustomrouteIntegDefaultTestDeployAssert24F20FD3.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/af2103ec4027cd06c3b70785ef96baa82e16535604586878d03345f64a0a5ace.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c5abcd2227f4385fe2e402a064655b3e66cf5d1a806717eecb12d1ca6c925f9b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -502,15 +502,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "disconnectServiceRoleDefaultPolicyD85178B8": [ - { - "type": "aws:cdk:logicalId", - "data": "disconnectServiceRoleDefaultPolicyD85178B8", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "wssqs-custom-route" @@ -520,7 +511,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/tree.json index 127218da1..e59002e7e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"wssqs-custom-route":{"id":"wssqs-custom-route","path":"wssqs-custom-route","children":{"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-custom-route/disconnectServiceRole","children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-custom-route/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-route/disconnectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"disconnect":{"id":"disconnect","path":"wssqs-custom-route/disconnect","children":{"Code":{"id":"Code","path":"wssqs-custom-route/disconnect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-custom-route/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-custom-route/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-custom-route/disconnect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-custom-route/disconnect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs","children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]}},"queue":{"id":"queue","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.186.0"}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","children":{"connect":{"id":"connect","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/connect","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/connect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"MOCK","integrationUri":""}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteconnect5AB5A82B"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"custom-action-Route":{"id":"custom-action-Route","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/custom-action-Route","children":{"custom-action":{"id":"custom-action","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/custom-action-Route/custom-action","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/custom-action-Route/custom-action/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"custom-action":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"custom-action"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/custom-action-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"custom-action","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqscustomactionRoutecustomaction8774D9C0"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.186.0","metadata":["*","*","*","*"]}},"Stage":{"id":"Stage","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/Stage","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/Stage/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.186.0","metadata":["*"]}},"LogGroup":{"id":"LogGroup","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LogGroup","children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.80.0"}},"Integ":{"id":"Integ","path":"wssqs-custom-route/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-custom-route/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"wssqs-custom-route/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-custom-route/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-custom-route/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-custom-route/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-custom-route/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-custom-route/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"wssqs-custom-route":{"id":"wssqs-custom-route","path":"wssqs-custom-route","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-custom-route/disconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-custom-route/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-route/disconnectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"disconnect":{"id":"disconnect","path":"wssqs-custom-route/disconnect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-custom-route/disconnect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-custom-route/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-custom-route/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-custom-route/disconnect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-custom-route/disconnect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}}}}}}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}}}}}}},"queue":{"id":"queue","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}}},"Policy":{"id":"Policy","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}}}}}}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.223.0","metadata":["*","*","*","*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"connect":{"id":"connect","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/connect","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/connect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"MOCK","integrationUri":""}}}}},"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteconnect5AB5A82B"}]]}}}}}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}}}}},"custom-action-Route":{"id":"custom-action-Route","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/custom-action-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"custom-action":{"id":"custom-action","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/custom-action-Route/custom-action","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/custom-action-Route/custom-action/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"custom-action":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"custom-action"}}}}},"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/custom-action-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"custom-action","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqscustomactionRoutecustomaction8774D9C0"}]]}}}}}}}},"Stage":{"id":"Stage","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/Stage","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/Stage/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}}}}},"LogGroup":{"id":"LogGroup","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"wssqs-custom-route/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}}}},"Integ":{"id":"Integ","path":"wssqs-custom-route/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-custom-route/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wssqs-custom-route/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-custom-route/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-custom-route/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-custom-route/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-custom-route/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-custom-route/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqs-custom-route.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqs-custom-route.assets.json index aee9c7d35..c204bfe69 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqs-custom-route.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqs-custom-route.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1": { + "displayName": "disconnect/Code", "source": { "path": "asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-5053d9d0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "af2103ec4027cd06c3b70785ef96baa82e16535604586878d03345f64a0a5ace": { + "c5abcd2227f4385fe2e402a064655b3e66cf5d1a806717eecb12d1ca6c925f9b": { + "displayName": "wssqs-custom-route Template", "source": { "path": "wssqs-custom-route.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-1d8747f7": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "af2103ec4027cd06c3b70785ef96baa82e16535604586878d03345f64a0a5ace.json", + "objectKey": "c5abcd2227f4385fe2e402a064655b3e66cf5d1a806717eecb12d1ca6c925f9b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqs-custom-route.template.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqs-custom-route.template.json index a989c6beb..e4b4d7165 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqs-custom-route.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqs-custom-route.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqscustomrouteIntegDefaultTestDeployAssert24F20FD3.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqscustomrouteIntegDefaultTestDeployAssert24F20FD3.assets.json index 5d96563f1..a1e3ed887 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqscustomrouteIntegDefaultTestDeployAssert24F20FD3.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-custom-route.js.snapshot/wssqscustomrouteIntegDefaultTestDeployAssert24F20FD3.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "wssqscustomrouteIntegDefaultTestDeployAssert24F20FD3 Template", "source": { "path": "wssqscustomrouteIntegDefaultTestDeployAssert24F20FD3.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js new file mode 100644 index 000000000..43e0a2bd8 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Connected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js new file mode 100644 index 000000000..ff92fbcfd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Disconnected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/integ.json index 4396e7a16..51d125d46 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "wssqs-default-route/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "wssqs-default-route/Integ/DefaultTest/DeployAssert", "assertionStackName": "wssqsdefaultrouteIntegDefaultTestDeployAssert04324B3F" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/manifest.json index d072790f2..03869d9a4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "wssqsdefaultrouteIntegDefaultTestDeployAssert04324B3F.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/94d504acffe91228a1332e087ad851a557648ed3bcd8d9235dfac19d129aef1b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21d1130525f1bad9b17f6c6cc6c70342258faaa5e45ae50a80fe2a24fb1a940d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -502,15 +502,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "disconnectServiceRoleDefaultPolicyD85178B8": [ - { - "type": "aws:cdk:logicalId", - "data": "disconnectServiceRoleDefaultPolicyD85178B8", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "wssqs-default-route" @@ -520,7 +511,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/tree.json index f99dbb037..c9fb31b61 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"wssqs-default-route":{"id":"wssqs-default-route","path":"wssqs-default-route","children":{"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-default-route/disconnectServiceRole","children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-default-route/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-default-route/disconnectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"disconnect":{"id":"disconnect","path":"wssqs-default-route/disconnect","children":{"Code":{"id":"Code","path":"wssqs-default-route/disconnect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-default-route/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-default-route/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-default-route/disconnect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-default-route/disconnect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs","children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]}},"queue":{"id":"queue","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.186.0"}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","children":{"connect":{"id":"connect","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/connect","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/connect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"MOCK","integrationUri":""}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteconnect5AB5A82B"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$default-Route":{"id":"$default-Route","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route","children":{"$default":{"id":"$default","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"$default":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"\\$default"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$default","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdefaultRoutedefaultB531E839"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.186.0","metadata":["*","*","*","*"]}},"Stage":{"id":"Stage","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/Stage","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/Stage/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.186.0","metadata":["*"]}},"LogGroup":{"id":"LogGroup","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LogGroup","children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.80.0"}},"Integ":{"id":"Integ","path":"wssqs-default-route/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-default-route/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"wssqs-default-route/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-default-route/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-default-route/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-default-route/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-default-route/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-default-route/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"wssqs-default-route":{"id":"wssqs-default-route","path":"wssqs-default-route","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-default-route/disconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-default-route/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-default-route/disconnectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"disconnect":{"id":"disconnect","path":"wssqs-default-route/disconnect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-default-route/disconnect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-default-route/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-default-route/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-default-route/disconnect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-default-route/disconnect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}}}}}}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}}}}}}},"queue":{"id":"queue","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}}},"Policy":{"id":"Policy","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}}}}}}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.223.0","metadata":["*","*","*","*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"connect":{"id":"connect","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/connect","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/connect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"MOCK","integrationUri":""}}}}},"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteconnect5AB5A82B"}]]}}}}}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}}}}},"$default-Route":{"id":"$default-Route","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"$default":{"id":"$default","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"$default":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"\\$default"}}}}},"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$default","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdefaultRoutedefaultB531E839"}]]}}}}}}}},"Stage":{"id":"Stage","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/Stage","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/Stage/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}}}}},"LogGroup":{"id":"LogGroup","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"wssqs-default-route/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}}}},"Integ":{"id":"Integ","path":"wssqs-default-route/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-default-route/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wssqs-default-route/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-default-route/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-default-route/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-default-route/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-default-route/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-default-route/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqs-default-route.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqs-default-route.assets.json index a15a500aa..0894a646b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqs-default-route.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqs-default-route.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1": { + "displayName": "disconnect/Code", "source": { "path": "asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-5053d9d0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "94d504acffe91228a1332e087ad851a557648ed3bcd8d9235dfac19d129aef1b": { + "21d1130525f1bad9b17f6c6cc6c70342258faaa5e45ae50a80fe2a24fb1a940d": { + "displayName": "wssqs-default-route Template", "source": { "path": "wssqs-default-route.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-52d35e64": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "94d504acffe91228a1332e087ad851a557648ed3bcd8d9235dfac19d129aef1b.json", + "objectKey": "21d1130525f1bad9b17f6c6cc6c70342258faaa5e45ae50a80fe2a24fb1a940d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqs-default-route.template.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqs-default-route.template.json index b603452e5..9c89a3fe4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqs-default-route.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqs-default-route.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqsdefaultrouteIntegDefaultTestDeployAssert04324B3F.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqsdefaultrouteIntegDefaultTestDeployAssert04324B3F.assets.json index 761c624d0..bc627b8a2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqsdefaultrouteIntegDefaultTestDeployAssert04324B3F.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-default-route.js.snapshot/wssqsdefaultrouteIntegDefaultTestDeployAssert04324B3F.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "wssqsdefaultrouteIntegDefaultTestDeployAssert04324B3F Template", "source": { "path": "wssqsdefaultrouteIntegDefaultTestDeployAssert04324B3F.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js new file mode 100644 index 000000000..43e0a2bd8 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Connected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js new file mode 100644 index 000000000..ff92fbcfd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Disconnected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/integ.json index a3fc54230..afbd3e839 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "wssqs-existing-web-socket/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "wssqs-existing-web-socket/Integ/DefaultTest/DeployAssert", "assertionStackName": "wssqsexistingwebsocketIntegDefaultTestDeployAssertE80DFB19" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/manifest.json index e1fa5ac5f..ce74d8a1c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "wssqsexistingwebsocketIntegDefaultTestDeployAssertE80DFB19.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f4a39e277f5ba7c3cf30364f078ee45f33561837eb77b4638bd14101eb035bdd.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/014b927d6abe5d6b73537e9b91fba7e62813e94b2200d62aa2eec87ace801b63.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -588,24 +588,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "connectServiceRoleDefaultPolicyCE4B3DE0": [ - { - "type": "aws:cdk:logicalId", - "data": "connectServiceRoleDefaultPolicyCE4B3DE0", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } - ], - "disconnectServiceRoleDefaultPolicyD85178B8": [ - { - "type": "aws:cdk:logicalId", - "data": "disconnectServiceRoleDefaultPolicyD85178B8", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "wssqs-existing-web-socket" @@ -615,7 +597,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/tree.json index b8d9e4389..594b9c281 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"wssqs-existing-web-socket":{"id":"wssqs-existing-web-socket","path":"wssqs-existing-web-socket","children":{"connectServiceRole":{"id":"connectServiceRole","path":"wssqs-existing-web-socket/connectServiceRole","children":{"ImportconnectServiceRole":{"id":"ImportconnectServiceRole","path":"wssqs-existing-web-socket/connectServiceRole/ImportconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/connectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"connect":{"id":"connect","path":"wssqs-existing-web-socket/connect","children":{"Code":{"id":"Code","path":"wssqs-existing-web-socket/connect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-existing-web-socket/connect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-existing-web-socket/connect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/connect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"connect.handler","role":{"Fn::GetAtt":["connectServiceRoleD6E70EFD","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-existing-web-socket/connect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/connect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"connectinlinePolicyAddedToExecutionRole0FA4FAF92","roles":[{"Ref":"connectServiceRoleD6E70EFD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-existing-web-socket/disconnectServiceRole","children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-existing-web-socket/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/disconnectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"disconnect":{"id":"disconnect","path":"wssqs-existing-web-socket/disconnect","children":{"Code":{"id":"Code","path":"wssqs-existing-web-socket/disconnect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-existing-web-socket/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-existing-web-socket/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/disconnect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-existing-web-socket/disconnect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"TestWebSocket":{"id":"TestWebSocket","path":"wssqs-existing-web-socket/TestWebSocket","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"description":"Test WebSocket","name":"TestWebSocket","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.186.0"}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route","children":{"ConnectIntegration-Permission":{"id":"ConnectIntegration-Permission","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route/ConnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["connectEB2081F1","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"TestWebSocketF281E1FE"},"/*$connect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"ConnectIntegration":{"id":"ConnectIntegration","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route/ConnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route/ConnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["connectEB2081F1","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"TestWebSocketconnectRouteConnectIntegrationBE8763A8"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route","children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route/DisconnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"TestWebSocketF281E1FE"},"/*$disconnect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route/DisconnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route/DisconnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"TestWebSocketdisconnectRouteDisconnectIntegrationFBA1CD5B"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.186.0","metadata":["*","*","*"]}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs","children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]}},"queue":{"id":"queue","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"Stage":{"id":"Stage","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/Stage","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/Stage/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"autoDeploy":true,"stageName":"prod"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.186.0","metadata":["*"]}},"LogGroup":{"id":"LogGroup","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LogGroup","children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.80.0"}},"Integ":{"id":"Integ","path":"wssqs-existing-web-socket/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-existing-web-socket/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"wssqs-existing-web-socket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-existing-web-socket/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-existing-web-socket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-existing-web-socket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-existing-web-socket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-existing-web-socket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"wssqs-existing-web-socket":{"id":"wssqs-existing-web-socket","path":"wssqs-existing-web-socket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"connectServiceRole":{"id":"connectServiceRole","path":"wssqs-existing-web-socket/connectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportconnectServiceRole":{"id":"ImportconnectServiceRole","path":"wssqs-existing-web-socket/connectServiceRole/ImportconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/connectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"connect":{"id":"connect","path":"wssqs-existing-web-socket/connect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-existing-web-socket/connect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-existing-web-socket/connect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-existing-web-socket/connect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/connect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"connect.handler","role":{"Fn::GetAtt":["connectServiceRoleD6E70EFD","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-existing-web-socket/connect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/connect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"connectinlinePolicyAddedToExecutionRole0FA4FAF92","roles":[{"Ref":"connectServiceRoleD6E70EFD"}]}}}}}}},"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-existing-web-socket/disconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-existing-web-socket/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/disconnectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"disconnect":{"id":"disconnect","path":"wssqs-existing-web-socket/disconnect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-existing-web-socket/disconnect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-existing-web-socket/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-existing-web-socket/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/disconnect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-existing-web-socket/disconnect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}}}}}}},"TestWebSocket":{"id":"TestWebSocket","path":"wssqs-existing-web-socket/TestWebSocket","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.223.0","metadata":["*","*","*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"description":"Test WebSocket","name":"TestWebSocket","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"ConnectIntegration-Permission":{"id":"ConnectIntegration-Permission","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route/ConnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["connectEB2081F1","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"TestWebSocketF281E1FE"},"/*$connect"]]}}}},"ConnectIntegration":{"id":"ConnectIntegration","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route/ConnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route/ConnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["connectEB2081F1","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/$connect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"TestWebSocketconnectRouteConnectIntegrationBE8763A8"}]]}}}}}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route/DisconnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"TestWebSocketF281E1FE"},"/*$disconnect"]]}}}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route/DisconnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route/DisconnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/TestWebSocket/$disconnect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"TestWebSocketdisconnectRouteDisconnectIntegrationFBA1CD5B"}]]}}}}}}}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}}}}}}},"queue":{"id":"queue","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}}},"Policy":{"id":"Policy","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}}}}}}},"Stage":{"id":"Stage","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/Stage","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/Stage/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"TestWebSocketF281E1FE"},"autoDeploy":true,"stageName":"prod"}}}}},"LogGroup":{"id":"LogGroup","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"wssqs-existing-web-socket/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}}}},"Integ":{"id":"Integ","path":"wssqs-existing-web-socket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-existing-web-socket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wssqs-existing-web-socket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-existing-web-socket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-existing-web-socket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-existing-web-socket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-existing-web-socket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-existing-web-socket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqs-existing-web-socket.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqs-existing-web-socket.assets.json index 6f3ef5c06..6a119bae4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqs-existing-web-socket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqs-existing-web-socket.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1": { + "displayName": "connect/Code", "source": { "path": "asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-5053d9d0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "f4a39e277f5ba7c3cf30364f078ee45f33561837eb77b4638bd14101eb035bdd": { + "014b927d6abe5d6b73537e9b91fba7e62813e94b2200d62aa2eec87ace801b63": { + "displayName": "wssqs-existing-web-socket Template", "source": { "path": "wssqs-existing-web-socket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-3f03ac5f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f4a39e277f5ba7c3cf30364f078ee45f33561837eb77b4638bd14101eb035bdd.json", + "objectKey": "014b927d6abe5d6b73537e9b91fba7e62813e94b2200d62aa2eec87ace801b63.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqs-existing-web-socket.template.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqs-existing-web-socket.template.json index fad85cfe8..b7fb15a82 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqs-existing-web-socket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqs-existing-web-socket.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -218,7 +218,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqsexistingwebsocketIntegDefaultTestDeployAssertE80DFB19.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqsexistingwebsocketIntegDefaultTestDeployAssertE80DFB19.assets.json index ed9f5c257..161c006d8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqsexistingwebsocketIntegDefaultTestDeployAssertE80DFB19.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-existing-web-socket.js.snapshot/wssqsexistingwebsocketIntegDefaultTestDeployAssertE80DFB19.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "wssqsexistingwebsocketIntegDefaultTestDeployAssertE80DFB19 Template", "source": { "path": "wssqsexistingwebsocketIntegDefaultTestDeployAssertE80DFB19.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js new file mode 100644 index 000000000..43e0a2bd8 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/connect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Connected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js new file mode 100644 index 000000000..ff92fbcfd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1/disconnect.js @@ -0,0 +1,6 @@ +export const handler = async (event) => { + return { + statusCode: 200, + body: 'Disconnected' + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/integ.json index 1dc1b2496..4e9d4b2dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "wssqs-route-lambdas/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "wssqs-route-lambdas/Integ/DefaultTest/DeployAssert", "assertionStackName": "wssqsroutelambdasIntegDefaultTestDeployAssert3BD0A2E7" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/manifest.json index 8a360e0a6..3dd8ec370 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "wssqsroutelambdasIntegDefaultTestDeployAssert3BD0A2E7.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8e69c942e428ad38f39753b0d68f515220540b721dd98f780cb91ea0591d4244.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7e04fc07890a2da7b6a497e48ac65b0c3aec51447469a72b50510e6fcc19ea0f.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -616,24 +616,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "connectServiceRoleDefaultPolicyCE4B3DE0": [ - { - "type": "aws:cdk:logicalId", - "data": "connectServiceRoleDefaultPolicyCE4B3DE0", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } - ], - "disconnectServiceRoleDefaultPolicyD85178B8": [ - { - "type": "aws:cdk:logicalId", - "data": "disconnectServiceRoleDefaultPolicyD85178B8", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "wssqs-route-lambdas" @@ -643,7 +625,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/tree.json index c3e5d6843..82d8f4e24 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"wssqs-route-lambdas":{"id":"wssqs-route-lambdas","path":"wssqs-route-lambdas","children":{"connectServiceRole":{"id":"connectServiceRole","path":"wssqs-route-lambdas/connectServiceRole","children":{"ImportconnectServiceRole":{"id":"ImportconnectServiceRole","path":"wssqs-route-lambdas/connectServiceRole/ImportconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/connectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"connect":{"id":"connect","path":"wssqs-route-lambdas/connect","children":{"Code":{"id":"Code","path":"wssqs-route-lambdas/connect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-route-lambdas/connect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-route-lambdas/connect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/connect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"connect.handler","role":{"Fn::GetAtt":["connectServiceRoleD6E70EFD","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-route-lambdas/connect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/connect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"connectinlinePolicyAddedToExecutionRole0FA4FAF92","roles":[{"Ref":"connectServiceRoleD6E70EFD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-route-lambdas/disconnectServiceRole","children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-route-lambdas/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/disconnectServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"disconnect":{"id":"disconnect","path":"wssqs-route-lambdas/disconnect","children":{"Code":{"id":"Code","path":"wssqs-route-lambdas/disconnect/Code","children":{"Stage":{"id":"Stage","path":"wssqs-route-lambdas/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-route-lambdas/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/disconnect/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-route-lambdas/disconnect/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs","children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]}},"queue":{"id":"queue","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.186.0"}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","children":{"ConnectIntegration-Permission":{"id":"ConnectIntegration-Permission","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["connectEB2081F1","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$connect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"ConnectIntegration":{"id":"ConnectIntegration","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["connectEB2081F1","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteConnectIntegration7C5EDD50"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}},"$default-Route":{"id":"$default-Route","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route","children":{"$default":{"id":"$default","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"$default":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"\\$default"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$default","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdefaultRoutedefaultB531E839"}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.186.0","metadata":["*","*","*","*"]}},"Stage":{"id":"Stage","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/Stage","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/Stage/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.186.0","metadata":["*"]}},"LogGroup":{"id":"LogGroup","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LogGroup","children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.80.0"}},"Integ":{"id":"Integ","path":"wssqs-route-lambdas/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-route-lambdas/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"wssqs-route-lambdas/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-route-lambdas/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-route-lambdas/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-route-lambdas/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-route-lambdas/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-route-lambdas/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"wssqs-route-lambdas":{"id":"wssqs-route-lambdas","path":"wssqs-route-lambdas","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"connectServiceRole":{"id":"connectServiceRole","path":"wssqs-route-lambdas/connectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportconnectServiceRole":{"id":"ImportconnectServiceRole","path":"wssqs-route-lambdas/connectServiceRole/ImportconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/connectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"connect":{"id":"connect","path":"wssqs-route-lambdas/connect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-route-lambdas/connect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-route-lambdas/connect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-route-lambdas/connect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/connect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"connect.handler","role":{"Fn::GetAtt":["connectServiceRoleD6E70EFD","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-route-lambdas/connect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/connect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"connectinlinePolicyAddedToExecutionRole0FA4FAF92","roles":[{"Ref":"connectServiceRoleD6E70EFD"}]}}}}}}},"disconnectServiceRole":{"id":"disconnectServiceRole","path":"wssqs-route-lambdas/disconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportdisconnectServiceRole":{"id":"ImportdisconnectServiceRole","path":"wssqs-route-lambdas/disconnectServiceRole/ImportdisconnectServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/disconnectServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"disconnect":{"id":"disconnect","path":"wssqs-route-lambdas/disconnect","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"wssqs-route-lambdas/disconnect/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wssqs-route-lambdas/disconnect/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wssqs-route-lambdas/disconnect/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/disconnect/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"disconnect.handler","role":{"Fn::GetAtt":["disconnectServiceRole0B1E33D9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"wssqs-route-lambdas/disconnect/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/disconnect/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"disconnectinlinePolicyAddedToExecutionRole0CDB203CB","roles":[{"Ref":"disconnectServiceRole0B1E33D9"}]}}}}}}},"ApiGatewayV2WebSocketToSqs":{"id":"ApiGatewayV2WebSocketToSqs","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-apigatewayv2websocket-sqs.ApiGatewayV2WebSocketToSqs","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId"}]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueuedlq875602DF"}]}}}}}}},"queue":{"id":"queue","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":true,"deduplicationScope":"messageGroup","fifoThroughputLimit":"perMessageGroupId","redriveAllowPolicy":{"redrivePermission":"denyAll"},"visibilityTimeout":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"deduplicationScope":"messageGroup","fifoQueue":true,"fifoThroughputLimit":"perMessageGroupId","kmsMasterKeyId":"alias/aws/sqs","redriveAllowPolicy":{"redrivePermission":"denyAll"},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueuedlq875602DF","Arn"]},"maxReceiveCount":15},"visibilityTimeout":900}}},"Policy":{"id":"Policy","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"ApiGatewayV2WebSocketToSqsqueue6D26A944"}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LambdaRestApiCloudWatchRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","Arn"]}},{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLogGroupAD536311","Arn"]}}],"Version":"2012-10-17"},"policyName":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRoleDefaultPolicy6D004FA5","roles":[{"Ref":"ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931"}]}}}}}}},"WebSocketApiApiGatewayV2WebSocketToSqs":{"id":"WebSocketApiApiGatewayV2WebSocketToSqs","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketApi","version":"2.223.0","metadata":["*","*","*","*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Api","aws:cdk:cloudformation:props":{"name":"WebSocketApiApiGatewayV2WebSocketToSqs","protocolType":"WEBSOCKET","routeSelectionExpression":"$request.body.action"}}},"$connect-Route":{"id":"$connect-Route","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"ConnectIntegration-Permission":{"id":"ConnectIntegration-Permission","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["connectEB2081F1","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$connect"]]}}}},"ConnectIntegration":{"id":"ConnectIntegration","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/ConnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["connectEB2081F1","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$connect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"AWS_IAM","routeKey":"$connect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsconnectRouteConnectIntegration7C5EDD50"}]]}}}}}},"$disconnect-Route":{"id":"$disconnect-Route","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"DisconnectIntegration-Permission":{"id":"DisconnectIntegration-Permission","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration-Permission","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"/*$disconnect"]]}}}},"DisconnectIntegration":{"id":"DisconnectIntegration","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/DisconnectIntegration/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"integrationType":"AWS_PROXY","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["disconnect829B70D0","Arn"]},"/invocations"]]}}}}}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$disconnect-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$disconnect","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdisconnectRouteDisconnectIntegrationFAAA34C8"}]]}}}}}},"$default-Route":{"id":"$default-Route","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketRoute","version":"2.223.0","metadata":["*"]},"children":{"$default":{"id":"$default","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketIntegration","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/$default/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnIntegration","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Integration","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"credentialsArn":{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsLambdaRestApiCloudWatchRole42C4E931","Arn"]},"integrationMethod":"POST","integrationType":"AWS","integrationUri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":sqs:path/",{"Ref":"AWS::AccountId"},"/",{"Fn::GetAtt":["ApiGatewayV2WebSocketToSqsqueue6D26A944","QueueName"]}]]},"passthroughBehavior":"NEVER","requestParameters":{"integration.request.header.Content-Type":"'application/x-www-form-urlencoded'"},"requestTemplates":{"$default":"Action=SendMessage&MessageGroupId=$input.path('$.MessageGroupId')&MessageDeduplicationId=$context.requestId&MessageAttribute.1.Name=connectionId&MessageAttribute.1.Value.StringValue=$context.connectionId&MessageAttribute.1.Value.DataType=String&MessageAttribute.2.Name=requestId&MessageAttribute.2.Value.StringValue=$context.requestId&MessageAttribute.2.Value.DataType=String&MessageBody=$util.urlEncode($input.json($util.escapeJavaScript('$').replaceAll(\"\\\\'\",\"'\")))"},"templateSelectionExpression":"\\$default"}}}}},"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/WebSocketApiApiGatewayV2WebSocketToSqs/$default-Route/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Route","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"authorizationType":"NONE","routeKey":"$default","target":{"Fn::Join":["",["integrations/",{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqsdefaultRoutedefaultB531E839"}]]}}}}}}}},"Stage":{"id":"Stage","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/Stage","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.WebSocketStage","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/Stage/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigatewayv2.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGatewayV2::Stage","aws:cdk:cloudformation:props":{"apiId":{"Ref":"ApiGatewayV2WebSocketToSqsWebSocketApiApiGatewayV2WebSocketToSqs92E2576D"},"autoDeploy":true,"stageName":"prod"}}}}},"LogGroup":{"id":"LogGroup","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"wssqs-route-lambdas/ApiGatewayV2WebSocketToSqs/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}}}},"Integ":{"id":"Integ","path":"wssqs-route-lambdas/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wssqs-route-lambdas/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wssqs-route-lambdas/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wssqs-route-lambdas/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-route-lambdas/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-route-lambdas/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wssqs-route-lambdas/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wssqs-route-lambdas/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqs-route-lambdas.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqs-route-lambdas.assets.json index 247058113..3f5b85d53 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqs-route-lambdas.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqs-route-lambdas.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1": { + "displayName": "connect/Code", "source": { "path": "asset.9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-5053d9d0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "9da0e8bdfa0712cb47fc2d6c6bad128e2edc58ffe5a8af5a322914f5c63609d1.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "8e69c942e428ad38f39753b0d68f515220540b721dd98f780cb91ea0591d4244": { + "7e04fc07890a2da7b6a497e48ac65b0c3aec51447469a72b50510e6fcc19ea0f": { + "displayName": "wssqs-route-lambdas Template", "source": { "path": "wssqs-route-lambdas.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-a11b4020": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "8e69c942e428ad38f39753b0d68f515220540b721dd98f780cb91ea0591d4244.json", + "objectKey": "7e04fc07890a2da7b6a497e48ac65b0c3aec51447469a72b50510e6fcc19ea0f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqs-route-lambdas.template.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqs-route-lambdas.template.json index 393caf88b..88e400a50 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqs-route-lambdas.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqs-route-lambdas.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -218,7 +218,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqsroutelambdasIntegDefaultTestDeployAssert3BD0A2E7.assets.json b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqsroutelambdasIntegDefaultTestDeployAssert3BD0A2E7.assets.json index 982eda4f2..4d77d1d90 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqsroutelambdasIntegDefaultTestDeployAssert3BD0A2E7.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigatewayv2websocket-sqs/test/integ.wssqs-route-lambdas.js.snapshot/wssqsroutelambdasIntegDefaultTestDeployAssert3BD0A2E7.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "wssqsroutelambdasIntegDefaultTestDeployAssert3BD0A2E7 Template", "source": { "path": "wssqsroutelambdasIntegDefaultTestDeployAssert3BD0A2E7.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.adoc index 569d08896..7952c2143 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.adoc @@ -52,7 +52,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new CloudFrontToApiGatewayToLambda(this, 'test-cloudfront-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, apiGatewayProps: { @@ -109,7 +109,7 @@ import software.amazon.awsconstructs.services.cloudfrontapigatewaylambda.CloudFr new CloudFrontToApiGatewayToLambda(this, "ApiGatewayToLambdaPattern", new CloudFrontToApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) // execution environment + .runtime(Runtime.NODEJS_22_X) // execution environment .code(Code.fromAsset("lambda")) // code loaded from the `lambda` directory (under root, next to `src`) .handler("hello.handler") // file is `hello`, function is `handler` .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplam-customCloudfrontLoggingBucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplam-customCloudfrontLoggingBucket.assets.json index d6e580331..ad79f5756 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplam-customCloudfrontLoggingBucket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplam-customCloudfrontLoggingBucket.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -29,16 +29,16 @@ } } }, - "538cf76188992868036513a790fb4d2494c8d4aa9667db10ea43da6a11e92f9e": { + "6c6309f3099f0198c3896bb74b614bf6ccb54a69ea6dd4d33505d8ba8cf2e575": { "displayName": "cftaplam-customCloudfrontLoggingBucket Template", "source": { "path": "cftaplam-customCloudfrontLoggingBucket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-e7568c9d": { + "current_account-current_region-fcc6f56f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "538cf76188992868036513a790fb4d2494c8d4aa9667db10ea43da6a11e92f9e.json", + "objectKey": "6c6309f3099f0198c3896bb74b614bf6ccb54a69ea6dd4d33505d8ba8cf2e575.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplam-customCloudfrontLoggingBucket.template.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplam-customCloudfrontLoggingBucket.template.json index b48f8b6ae..7ae698ff6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplam-customCloudfrontLoggingBucket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplam-customCloudfrontLoggingBucket.template.json @@ -39,7 +39,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -48,7 +48,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunctionServiceRole00AAA44C" @@ -242,7 +242,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -256,7 +256,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplamcustomCloudfrontLoggingBucketIntegDefaultTestDeployAssert35A683E0.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplamcustomCloudfrontLoggingBucketIntegDefaultTestDeployAssert35A683E0.assets.json index 49fc89406..e383a1f52 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplamcustomCloudfrontLoggingBucketIntegDefaultTestDeployAssert35A683E0.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/cftaplamcustomCloudfrontLoggingBucketIntegDefaultTestDeployAssert35A683E0.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "cftaplamcustomCloudfrontLoggingBucketIntegDefaultTestDeployAssert35A683E0 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/integ.json index fbc066446..a31e21161 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "cftaplamcustomCloudfrontLoggingBucketIntegDefaultTestDeployAssert35A683E0" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/manifest.json index 1de474e95..3bd551e1f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/538cf76188992868036513a790fb4d2494c8d4aa9667db10ea43da6a11e92f9e.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6c6309f3099f0198c3896bb74b614bf6ccb54a69ea6dd4d33505d8ba8cf2e575.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -707,57 +707,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -766,7 +757,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -843,7 +837,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -987,7 +981,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1016,7 +1013,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1080,7 +1080,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1114,7 +1117,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1137,7 +1143,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1167,6 +1176,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/tree.json index 75fde0c8a..bd964b188 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-customCloudfrontLoggingBucket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"cftaplam-customCloudfrontLoggingBucket":{"id":"cftaplam-customCloudfrontLoggingBucket","path":"cftaplam-customCloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction":{"id":"cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunctionServiceRole00AAA44C","Arn"]},"runtime":"nodejs20.x"}}},"cftaplamcustomCloudfrontLoggingBucketcftaplamcustomCloudfrontLoggingBucketauthorizer02C97B0F:Permissions":{"id":"cftaplamcustomCloudfrontLoggingBucketcftaplamcustomCloudfrontLoggingBucketauthorizer02C97B0F:Permissions","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/cftaplamcustomCloudfrontLoggingBucketcftaplamcustomCloudfrontLoggingBucketauthorizer02C97B0F:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunction86ECA8C3","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/authorizers/",{"Ref":"cftaplamcustomCloudfrontLoggingBucketauthorizer4D180075"}]]}}}}}},"cftaplam-customCloudfrontLoggingBucket-authorizer":{"id":"cftaplam-customCloudfrontLoggingBucket-authorizer","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunction86ECA8C3","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunction86ECA8C3","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunction86ECA8C3","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftaplamcustomCloudfrontLoggingBucketcftaplamcustomCloudfrontLoggingBucketauthorizer02C97B0F","restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"type":"REQUEST"}}}}},"cf-apigw-lambda":{"id":"cf-apigw-lambda","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway-lambda.CloudFrontToApiGatewayToLambda","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["cfapigwlambdaLambdaFunctionServiceRole9B40D826","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"cfapigwlambdaLambdaFunctioninlinePolicyAddedToExecutionRole00FBB4ADD","roles":[{"Ref":"cfapigwlambdaLambdaFunctionServiceRole9B40D826"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"},{"endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["REGIONAL"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["cfapigwlambdaApiAccessLogGroup16C73450","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"cfapigwlambdaLambdaRestApiDeployment33C24C7D969bc994bbb2c876761cc93e485b8c67"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cfapigwlambdaLambdaRestApi775C255B","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"}}}},"ANY":{"id":"ANY","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}":{"id":"ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/",{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"},"/*/*"]]}}}},"ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}":{"id":"ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamcustomCloudfrontLoggingBucketauthorizer4D180075"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"cfapigwlambdaLambdaRestApiproxy6A768910"},"restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"}}}}}}}},"ANY":{"id":"ANY","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..":{"id":"ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/ANY/ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/",{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"},"/*/"]]}}}},"ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..":{"id":"ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamcustomCloudfrontLoggingBucketauthorizer4D180075"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["cfapigwlambdaLambdaRestApi775C255B","RootResourceId"]},"restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"stage":{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["cfapigwlambdaLambdaRestApiCloudWatchRole76F5ABDF","Arn"]}}}},"CloudFrontToApiGateway":{"id":"CloudFrontToApiGateway","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.86.0"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.206.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc860b559e82562b55d86431c32566a0eb839407df7","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc860b559e82562b55d86431c32566a0eb839407df7"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.206.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"},"/"]]}]}]}]}]},"id":"cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin169FDD6AF","originPath":{"Fn::Join":["",["/",{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin169FDD6AF","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewaySetHttpSecurityHeadersE20F2933","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","RegionalDomainName"]}}}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftaplam-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"cftaplam-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"cftaplam-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"cftaplam-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"cftaplam-customCloudfrontLoggingBucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-customCloudfrontLoggingBucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-customCloudfrontLoggingBucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"cftaplam-customCloudfrontLoggingBucket":{"id":"cftaplam-customCloudfrontLoggingBucket","path":"cftaplam-customCloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction":{"id":"cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunctionServiceRole00AAA44C","Arn"]},"runtime":"nodejs22.x"}}},"cftaplamcustomCloudfrontLoggingBucketcftaplamcustomCloudfrontLoggingBucketauthorizer02C97B0F:Permissions":{"id":"cftaplamcustomCloudfrontLoggingBucketcftaplamcustomCloudfrontLoggingBucketauthorizer02C97B0F:Permissions","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizerAuthFunction/cftaplamcustomCloudfrontLoggingBucketcftaplamcustomCloudfrontLoggingBucketauthorizer02C97B0F:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunction86ECA8C3","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/authorizers/",{"Ref":"cftaplamcustomCloudfrontLoggingBucketauthorizer4D180075"}]]}}}}}},"cftaplam-customCloudfrontLoggingBucket-authorizer":{"id":"cftaplam-customCloudfrontLoggingBucket-authorizer","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cftaplam-customCloudfrontLoggingBucket-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunction86ECA8C3","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunction86ECA8C3","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftaplamcustomCloudfrontLoggingBucketauthorizerAuthFunction86ECA8C3","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftaplamcustomCloudfrontLoggingBucketcftaplamcustomCloudfrontLoggingBucketauthorizer02C97B0F","restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"type":"REQUEST"}}}}},"cf-apigw-lambda":{"id":"cf-apigw-lambda","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway-lambda.CloudFrontToApiGatewayToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["cfapigwlambdaLambdaFunctionServiceRole9B40D826","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"cfapigwlambdaLambdaFunctioninlinePolicyAddedToExecutionRole00FBB4ADD","roles":[{"Ref":"cfapigwlambdaLambdaFunctionServiceRole9B40D826"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"},{"endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["REGIONAL"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["cfapigwlambdaApiAccessLogGroup16C73450","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"cfapigwlambdaLambdaRestApiDeployment33C24C7D969bc994bbb2c876761cc93e485b8c67"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cfapigwlambdaLambdaRestApi775C255B","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"}}}},"ANY":{"id":"ANY","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}":{"id":"ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/",{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"},"/*/*"]]}}}},"ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}":{"id":"ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamcustomCloudfrontLoggingBucketauthorizer4D180075"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"cfapigwlambdaLambdaRestApiproxy6A768910"},"restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"}}}}}}}},"ANY":{"id":"ANY","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..":{"id":"ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/ANY/ApiPermission.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/",{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"},"/*/"]]}}}},"ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..":{"id":"ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaLambdaRestApi92F6CCCC.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamcustomCloudfrontLoggingBucketauthorizer4D180075"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cfapigwlambdaLambdaFunction10C09D31","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["cfapigwlambdaLambdaRestApi775C255B","RootResourceId"]},"restApiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},"stage":{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["cfapigwlambdaLambdaRestApiCloudWatchRole76F5ABDF","Arn"]}}}},"CloudFrontToApiGateway":{"id":"CloudFrontToApiGateway","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.95.1"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.223.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc860b559e82562b55d86431c32566a0eb839407df7","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc860b559e82562b55d86431c32566a0eb839407df7"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog48BE423A"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.223.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftaplam-customCloudfrontLoggingBucket/cf-apigw-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cfapigwlambdaLambdaRestApi775C255B"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"},"/"]]}]}]}]}]},"id":"cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin169FDD6AF","originPath":{"Fn::Join":["",["/",{"Ref":"cfapigwlambdaLambdaRestApiDeploymentStageprod83104011"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftaplamcustomCloudfrontLoggingBucketcfapigwlambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin169FDD6AF","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewaySetHttpSecurityHeadersE20F2933","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2","RegionalDomainName"]}}}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftaplam-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"cftaplam-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"cftaplam-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"cftaplam-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"cftaplam-customCloudfrontLoggingBucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-customCloudfrontLoggingBucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-customCloudfrontLoggingBucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplam-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplam-no-arguments.assets.json index 7e95497aa..5180ce903 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplam-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplam-no-arguments.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "cftaplam-no-arguments-authorizerAuthFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -29,16 +29,16 @@ } } }, - "4ce17673ef935cd99675fc7a6b0b46b3aac1de23c796c360a8c1fd2cd4b3763c": { + "8d40dfb6ca2130be1607af9e81ac9f5c021a0da9c6e10bc051327228f1250d83": { "displayName": "cftaplam-no-arguments Template", "source": { "path": "cftaplam-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-059330ef": { + "current_account-current_region-fdcea614": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4ce17673ef935cd99675fc7a6b0b46b3aac1de23c796c360a8c1fd2cd4b3763c.json", + "objectKey": "8d40dfb6ca2130be1607af9e81ac9f5c021a0da9c6e10bc051327228f1250d83.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplam-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplam-no-arguments.template.json index 4edfefe0b..a972154ea 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplam-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplam-no-arguments.template.json @@ -39,7 +39,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -48,7 +48,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "cftaplamnoargumentsauthorizerAuthFunctionServiceRole122160C6" @@ -242,7 +242,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -256,7 +256,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplamnoargumentsIntegDefaultTestDeployAssertACC32F59.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplamnoargumentsIntegDefaultTestDeployAssertACC32F59.assets.json index 90fb5f65a..8476e9ee6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplamnoargumentsIntegDefaultTestDeployAssertACC32F59.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/cftaplamnoargumentsIntegDefaultTestDeployAssertACC32F59.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "cftaplamnoargumentsIntegDefaultTestDeployAssertACC32F59 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/integ.json index 5d78ac07e..62661a935 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "cftaplam-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "cftaplamnoargumentsIntegDefaultTestDeployAssertACC32F59" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/manifest.json index 55a5756da..a40921e40 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4ce17673ef935cd99675fc7a6b0b46b3aac1de23c796c360a8c1fd2cd4b3763c.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8d40dfb6ca2130be1607af9e81ac9f5c021a0da9c6e10bc051327228f1250d83.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -707,57 +707,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -766,7 +757,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -843,7 +837,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -987,7 +981,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1016,7 +1013,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1080,7 +1080,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1114,7 +1117,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1137,7 +1143,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1167,6 +1176,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/tree.json index d74f527e0..e5222ee6e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"cftaplam-no-arguments":{"id":"cftaplam-no-arguments","path":"cftaplam-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"cftaplam-no-arguments-authorizerAuthFunction":{"id":"cftaplam-no-arguments-authorizerAuthFunction","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunctionServiceRole122160C6","Arn"]},"runtime":"nodejs20.x"}}},"cftaplamnoargumentscftaplamnoargumentsauthorizer14876A7B:Permissions":{"id":"cftaplamnoargumentscftaplamnoargumentsauthorizer14876A7B:Permissions","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/cftaplamnoargumentscftaplamnoargumentsauthorizer14876A7B:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunction9B127993","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/authorizers/",{"Ref":"cftaplamnoargumentsauthorizerD7B341B1"}]]}}}}}},"cftaplam-no-arguments-authorizer":{"id":"cftaplam-no-arguments-authorizer","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunction9B127993","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunction9B127993","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunction9B127993","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftaplamnoargumentscftaplamnoargumentsauthorizer14876A7B","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"type":"REQUEST"}}}}},"test-cloudfront-apigateway-lambda":{"id":"test-cloudfront-apigateway-lambda","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway-lambda.CloudFrontToApiGatewayToLambda","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunctionServiceRoleCB74590F","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcloudfrontapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole010F5D55C","roles":[{"Ref":"testcloudfrontapigatewaylambdaLambdaFunctionServiceRoleCB74590F"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"},{"endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["REGIONAL"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaApiAccessLogGroup97EB2E40","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeployment0C4661C0449e768de84d9b01b952d7f0c0a787fe"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}},"ANY":{"id":"ANY","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}":{"id":"ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/*/*"]]}}}},"ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}":{"id":"ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamnoargumentsauthorizerD7B341B1"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiproxyBC09D86F"},"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}}}},"ANY":{"id":"ANY","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..":{"id":"ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/*/"]]}}}},"ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..":{"id":"ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamnoargumentsauthorizerD7B341B1"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44","RootResourceId"]},"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"stage":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApiCloudWatchRole7A327F48","Arn"]}}}},"CloudFrontToApiGateway":{"id":"CloudFrontToApiGateway","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.86.0"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.206.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc87d9e55c0a6a55f893f95e9a700c7ce19634229d0","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc87d9e55c0a6a55f893f95e9a700c7ce19634229d0"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.206.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/"]]}]}]}]}]},"id":"cftaplamnoargumentstestcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin14C55B0B8","originPath":{"Fn::Join":["",["/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftaplamnoargumentstestcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin14C55B0B8","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewaySetHttpSecurityHeaders6945414A","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","RegionalDomainName"]}}}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftaplam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"cftaplam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"cftaplam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"cftaplam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"cftaplam-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftaplam-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftaplam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftaplam-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"cftaplam-no-arguments":{"id":"cftaplam-no-arguments","path":"cftaplam-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"cftaplam-no-arguments-authorizerAuthFunction":{"id":"cftaplam-no-arguments-authorizerAuthFunction","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunctionServiceRole122160C6","Arn"]},"runtime":"nodejs22.x"}}},"cftaplamnoargumentscftaplamnoargumentsauthorizer14876A7B:Permissions":{"id":"cftaplamnoargumentscftaplamnoargumentsauthorizer14876A7B:Permissions","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizerAuthFunction/cftaplamnoargumentscftaplamnoargumentsauthorizer14876A7B:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunction9B127993","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/authorizers/",{"Ref":"cftaplamnoargumentsauthorizerD7B341B1"}]]}}}}}},"cftaplam-no-arguments-authorizer":{"id":"cftaplam-no-arguments-authorizer","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/cftaplam-no-arguments-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunction9B127993","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunction9B127993","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftaplamnoargumentsauthorizerAuthFunction9B127993","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftaplamnoargumentscftaplamnoargumentsauthorizer14876A7B","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"type":"REQUEST"}}}}},"test-cloudfront-apigateway-lambda":{"id":"test-cloudfront-apigateway-lambda","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway-lambda.CloudFrontToApiGatewayToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunctionServiceRoleCB74590F","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcloudfrontapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole010F5D55C","roles":[{"Ref":"testcloudfrontapigatewaylambdaLambdaFunctionServiceRoleCB74590F"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"},{"endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["REGIONAL"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaApiAccessLogGroup97EB2E40","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeployment0C4661C0449e768de84d9b01b952d7f0c0a787fe"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}},"ANY":{"id":"ANY","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}":{"id":"ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/*/*"]]}}}},"ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}":{"id":"ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamnoargumentsauthorizerD7B341B1"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiproxyBC09D86F"},"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}}}},"ANY":{"id":"ANY","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..":{"id":"ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/*/"]]}}}},"ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..":{"id":"ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.cftaplamnoargumentstestcloudfrontapigatewaylambdaLambdaRestApiF14A7709.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamnoargumentsauthorizerD7B341B1"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44","RootResourceId"]},"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"stage":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApiCloudWatchRole7A327F48","Arn"]}}}},"CloudFrontToApiGateway":{"id":"CloudFrontToApiGateway","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.95.1"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.223.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc87d9e55c0a6a55f893f95e9a700c7ce19634229d0","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc87d9e55c0a6a55f893f95e9a700c7ce19634229d0"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.223.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftaplam-no-arguments/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/"]]}]}]}]}]},"id":"cftaplamnoargumentstestcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin14C55B0B8","originPath":{"Fn::Join":["",["/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftaplamnoargumentstestcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin14C55B0B8","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewaySetHttpSecurityHeaders6945414A","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","RegionalDomainName"]}}}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftaplam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"cftaplam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"cftaplam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"cftaplam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"cftaplam-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftaplam-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftaplam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftaplam-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplam-no-usage-plan.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplam-no-usage-plan.assets.json index acb2b026f..735933150 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplam-no-usage-plan.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplam-no-usage-plan.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "cftaplam-no-usage-plan-authorizerAuthFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -29,16 +29,16 @@ } } }, - "3668c92ea868a40616483b03bb360ba2e5a13cfe1dd6375eff878cc6b23f564a": { + "ad790246f64fa1eb68d4d2c234a69b881cfd895da410d8ca43696401ebc23411": { "displayName": "cftaplam-no-usage-plan Template", "source": { "path": "cftaplam-no-usage-plan.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-c0017076": { + "current_account-current_region-579f2ea2": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3668c92ea868a40616483b03bb360ba2e5a13cfe1dd6375eff878cc6b23f564a.json", + "objectKey": "ad790246f64fa1eb68d4d2c234a69b881cfd895da410d8ca43696401ebc23411.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplam-no-usage-plan.template.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplam-no-usage-plan.template.json index a9c7ac102..b351a88ca 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplam-no-usage-plan.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplam-no-usage-plan.template.json @@ -39,7 +39,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -48,7 +48,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "cftaplamnousageplanauthorizerAuthFunctionServiceRoleD960FE23" @@ -242,7 +242,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -256,7 +256,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplamnousageplanIntegDefaultTestDeployAssertABA4F4C5.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplamnousageplanIntegDefaultTestDeployAssertABA4F4C5.assets.json index 6f588dd5b..9eb184c16 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplamnousageplanIntegDefaultTestDeployAssertABA4F4C5.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/cftaplamnousageplanIntegDefaultTestDeployAssertABA4F4C5.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "cftaplamnousageplanIntegDefaultTestDeployAssertABA4F4C5 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/integ.json index 0e5282e1e..9e477e992 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "cftaplam-no-usage-plan/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "cftaplamnousageplanIntegDefaultTestDeployAssertABA4F4C5" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/manifest.json index d3d6596d2..7691b4f6f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3668c92ea868a40616483b03bb360ba2e5a13cfe1dd6375eff878cc6b23f564a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ad790246f64fa1eb68d4d2c234a69b881cfd895da410d8ca43696401ebc23411.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -689,57 +689,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -748,7 +739,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -825,7 +819,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -969,7 +963,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -998,7 +995,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1062,7 +1062,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1096,7 +1099,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1119,7 +1125,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1149,6 +1158,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/tree.json index 923c3baa0..f904bcd46 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-no-usage-plan.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"cftaplam-no-usage-plan":{"id":"cftaplam-no-usage-plan","path":"cftaplam-no-usage-plan","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"cftaplam-no-usage-plan-authorizerAuthFunction":{"id":"cftaplam-no-usage-plan-authorizerAuthFunction","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionServiceRoleD960FE23","Arn"]},"runtime":"nodejs20.x"}}},"cftaplamnousageplancftaplamnousageplanauthorizerB8C63521:Permissions":{"id":"cftaplamnousageplancftaplamnousageplanauthorizerB8C63521:Permissions","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/cftaplamnousageplancftaplamnousageplanauthorizerB8C63521:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionC756EB1A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/authorizers/",{"Ref":"cftaplamnousageplanauthorizerB177A4F9"}]]}}}}}},"cftaplam-no-usage-plan-authorizer":{"id":"cftaplam-no-usage-plan-authorizer","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionC756EB1A","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionC756EB1A","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionC756EB1A","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftaplamnousageplancftaplamnousageplanauthorizerB8C63521","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"type":"REQUEST"}}}}},"test-cloudfront-apigateway-lambda":{"id":"test-cloudfront-apigateway-lambda","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway-lambda.CloudFrontToApiGatewayToLambda","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunctionServiceRoleCB74590F","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcloudfrontapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole010F5D55C","roles":[{"Ref":"testcloudfrontapigatewaylambdaLambdaFunctionServiceRoleCB74590F"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"},{"endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["REGIONAL"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaApiAccessLogGroup97EB2E40","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeployment0C4661C0d9c4123459f0cf4d3f3c0bde215f7fe1"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}},"ANY":{"id":"ANY","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}":{"id":"ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/*/*"]]}}}},"ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}":{"id":"ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamnousageplanauthorizerB177A4F9"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiproxyBC09D86F"},"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}}}},"ANY":{"id":"ANY","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..":{"id":"ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/*/"]]}}}},"ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..":{"id":"ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamnousageplanauthorizerB177A4F9"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44","RootResourceId"]},"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApiCloudWatchRole7A327F48","Arn"]}}}},"CloudFrontToApiGateway":{"id":"CloudFrontToApiGateway","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.86.0"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.206.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc86ff048e47765694444f7bb321137eed6f5db5665","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc86ff048e47765694444f7bb321137eed6f5db5665"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.206.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/"]]}]}]}]}]},"id":"cftaplamnousageplantestcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin1079FB863","originPath":{"Fn::Join":["",["/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftaplamnousageplantestcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin1079FB863","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewaySetHttpSecurityHeaders6945414A","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","RegionalDomainName"]}}}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftaplam-no-usage-plan/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"cftaplam-no-usage-plan/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"cftaplam-no-usage-plan/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"cftaplam-no-usage-plan/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"cftaplam-no-usage-plan/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftaplam-no-usage-plan/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftaplam-no-usage-plan/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftaplam-no-usage-plan/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-no-usage-plan/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-no-usage-plan/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-no-usage-plan/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-no-usage-plan/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"cftaplam-no-usage-plan":{"id":"cftaplam-no-usage-plan","path":"cftaplam-no-usage-plan","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"cftaplam-no-usage-plan-authorizerAuthFunction":{"id":"cftaplam-no-usage-plan-authorizerAuthFunction","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionServiceRoleD960FE23","Arn"]},"runtime":"nodejs22.x"}}},"cftaplamnousageplancftaplamnousageplanauthorizerB8C63521:Permissions":{"id":"cftaplamnousageplancftaplamnousageplanauthorizerB8C63521:Permissions","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizerAuthFunction/cftaplamnousageplancftaplamnousageplanauthorizerB8C63521:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionC756EB1A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/authorizers/",{"Ref":"cftaplamnousageplanauthorizerB177A4F9"}]]}}}}}},"cftaplam-no-usage-plan-authorizer":{"id":"cftaplam-no-usage-plan-authorizer","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/cftaplam-no-usage-plan-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionC756EB1A","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionC756EB1A","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftaplamnousageplanauthorizerAuthFunctionC756EB1A","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftaplamnousageplancftaplamnousageplanauthorizerB8C63521","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"type":"REQUEST"}}}}},"test-cloudfront-apigateway-lambda":{"id":"test-cloudfront-apigateway-lambda","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway-lambda.CloudFrontToApiGatewayToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunctionServiceRoleCB74590F","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcloudfrontapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole010F5D55C","roles":[{"Ref":"testcloudfrontapigatewaylambdaLambdaFunctionServiceRoleCB74590F"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"},{"endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["REGIONAL"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaApiAccessLogGroup97EB2E40","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeployment0C4661C0d9c4123459f0cf4d3f3c0bde215f7fe1"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}},"ANY":{"id":"ANY","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}":{"id":"ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/*/*"]]}}}},"ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}":{"id":"ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamnousageplanauthorizerB177A4F9"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiproxyBC09D86F"},"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}}}},"ANY":{"id":"ANY","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..":{"id":"ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/*/"]]}}}},"ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..":{"id":"ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.cftaplamnousageplantestcloudfrontapigatewaylambdaLambdaRestApiB0E151E3.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamnousageplanauthorizerB177A4F9"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaFunction17A55E65","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44","RootResourceId"]},"restApiId":{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"}}}}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaLambdaRestApiCloudWatchRole7A327F48","Arn"]}}}},"CloudFrontToApiGateway":{"id":"CloudFrontToApiGateway","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.95.1"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.223.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc86ff048e47765694444f7bb321137eed6f5db5665","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc86ff048e47765694444f7bb321137eed6f5db5665"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog347EED57"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.223.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftaplam-no-usage-plan/test-cloudfront-apigateway-lambda/CloudFrontToApiGateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApi6A4CBD44"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"},"/"]]}]}]}]}]},"id":"cftaplamnousageplantestcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin1079FB863","originPath":{"Fn::Join":["",["/",{"Ref":"testcloudfrontapigatewaylambdaLambdaRestApiDeploymentStageprod4617A7B7"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftaplamnousageplantestcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudFrontDistributionOrigin1079FB863","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewaySetHttpSecurityHeaders6945414A","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421","RegionalDomainName"]}}}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftaplam-no-usage-plan/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"cftaplam-no-usage-plan/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"cftaplam-no-usage-plan/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"cftaplam-no-usage-plan/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"cftaplam-no-usage-plan/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftaplam-no-usage-plan/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftaplam-no-usage-plan/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftaplam-no-usage-plan/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-no-usage-plan/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-no-usage-plan/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-no-usage-plan/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-no-usage-plan/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplam-override-behavior.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplam-override-behavior.assets.json index abc9ff5cc..e17ae5bcd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplam-override-behavior.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplam-override-behavior.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "cftaplam-override-behavior-authorizerAuthFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -29,16 +29,16 @@ } } }, - "15f4d37c3b85a6278ba96597ab7e4bdda8be41dcc436bc71a700131f83a87fe8": { + "67336542ef1ab4ac93b937d7aea2f3a1b08e0dc42146c237a4980c5acee1ce78": { "displayName": "cftaplam-override-behavior Template", "source": { "path": "cftaplam-override-behavior.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-719248a4": { + "current_account-current_region-55f29717": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "15f4d37c3b85a6278ba96597ab7e4bdda8be41dcc436bc71a700131f83a87fe8.json", + "objectKey": "67336542ef1ab4ac93b937d7aea2f3a1b08e0dc42146c237a4980c5acee1ce78.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplam-override-behavior.template.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplam-override-behavior.template.json index f9944ab04..2101e6fdd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplam-override-behavior.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplam-override-behavior.template.json @@ -87,7 +87,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -96,7 +96,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "cftaplamoverridebehaviorauthorizerAuthFunctionServiceRoleA606974F" @@ -290,7 +290,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -304,7 +304,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplamoverridebehaviorIntegDefaultTestDeployAssert3DC30427.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplamoverridebehaviorIntegDefaultTestDeployAssert3DC30427.assets.json index ad4999db8..e189700ec 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplamoverridebehaviorIntegDefaultTestDeployAssert3DC30427.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/cftaplamoverridebehaviorIntegDefaultTestDeployAssert3DC30427.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "cftaplamoverridebehaviorIntegDefaultTestDeployAssert3DC30427 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/integ.json index b142d9b5b..25454d4b9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "cftaplam-override-behavior/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "cftaplamoverridebehaviorIntegDefaultTestDeployAssert3DC30427" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/manifest.json index 698c3f876..5b7e6c831 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/15f4d37c3b85a6278ba96597ab7e4bdda8be41dcc436bc71a700131f83a87fe8.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/67336542ef1ab4ac93b937d7aea2f3a1b08e0dc42146c237a4980c5acee1ce78.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -752,57 +752,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -811,7 +802,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -888,7 +882,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1032,7 +1026,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1061,7 +1058,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1125,7 +1125,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1159,7 +1162,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1182,7 +1188,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1212,6 +1221,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/tree.json index c0c78c9ca..043140e4b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.cftaplam-override-behavior.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"cftaplam-override-behavior":{"id":"cftaplam-override-behavior","path":"cftaplam-override-behavior","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"SomeCachePolicy":{"id":"SomeCachePolicy","path":"cftaplam-override-behavior/SomeCachePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CachePolicy","version":"2.206.0","metadata":[{"cachePolicyName":"*","defaultTtl":"*","minTtl":"*","maxTtl":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/SomeCachePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnCachePolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::CachePolicy","aws:cdk:cloudformation:props":{"cachePolicyConfig":{"name":"SomeCachePolicy","minTtl":18000,"maxTtl":36000,"defaultTtl":28800,"parametersInCacheKeyAndForwardedToOrigin":{"cookiesConfig":{"cookieBehavior":"none"},"headersConfig":{"headerBehavior":"none"},"enableAcceptEncodingGzip":false,"enableAcceptEncodingBrotli":false,"queryStringsConfig":{"queryStringBehavior":"none"}}}}}}}},"NoCachePolicy":{"id":"NoCachePolicy","path":"cftaplam-override-behavior/NoCachePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CachePolicy","version":"2.206.0","metadata":[{"cachePolicyName":"*","defaultTtl":"*","minTtl":"*","maxTtl":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/NoCachePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnCachePolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::CachePolicy","aws:cdk:cloudformation:props":{"cachePolicyConfig":{"name":"NoCachePolicy","minTtl":0,"maxTtl":0,"defaultTtl":0,"parametersInCacheKeyAndForwardedToOrigin":{"cookiesConfig":{"cookieBehavior":"none"},"headersConfig":{"headerBehavior":"none"},"enableAcceptEncodingGzip":false,"enableAcceptEncodingBrotli":false,"queryStringsConfig":{"queryStringBehavior":"none"}}}}}}}},"cftaplam-override-behavior-authorizerAuthFunction":{"id":"cftaplam-override-behavior-authorizerAuthFunction","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunctionServiceRoleA606974F","Arn"]},"runtime":"nodejs20.x"}}},"cftaplamoverridebehaviorcftaplamoverridebehaviorauthorizer3042C32C:Permissions":{"id":"cftaplamoverridebehaviorcftaplamoverridebehaviorauthorizer3042C32C:Permissions","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/cftaplamoverridebehaviorcftaplamoverridebehaviorauthorizer3042C32C:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunction9DD827D6","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"/authorizers/",{"Ref":"cftaplamoverridebehaviorauthorizer74D77225"}]]}}}}}},"cftaplam-override-behavior-authorizer":{"id":"cftaplam-override-behavior-authorizer","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunction9DD827D6","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunction9DD827D6","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunction9DD827D6","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftaplamoverridebehaviorcftaplamoverridebehaviorauthorizer3042C32C","restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"type":"REQUEST"}}}}},"cf-api-lambda-override":{"id":"cf-api-lambda-override","path":"cftaplam-override-behavior/cf-api-lambda-override","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway-lambda.CloudFrontToApiGatewayToLambda","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["cfapilambdaoverrideLambdaFunctionServiceRole4B1A4043","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"cfapilambdaoverrideLambdaFunctioninlinePolicyAddedToExecutionRole0248615B6","roles":[{"Ref":"cfapilambdaoverrideLambdaFunctionServiceRole4B1A4043"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cftaplam-override-behavior/cf-api-lambda-override/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*","proxy":false},{"endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*","proxy":false}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["REGIONAL"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["cfapilambdaoverrideApiAccessLogGroup2665068D","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"cfapilambdaoverrideLambdaRestApiDeployment82ACBB00eff3607850f915efb43bbead11999a10"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"static":{"id":"static","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/static","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Resource","version":"2.206.0","metadata":[{"parent":"*","pathPart":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/static/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cfapilambdaoverrideLambdaRestApi6E7952FC","RootResourceId"]},"pathPart":"static","restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}},"GET":{"id":"GET","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/static/GET","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/static/GET/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamoverridebehaviorauthorizer74D77225"},"httpMethod":"GET","integration":{"type":"HTTP_PROXY","uri":"http://amazon.com","integrationHttpMethod":"GET"},"resourceId":{"Ref":"cfapilambdaoverrideLambdaRestApistaticC2ECB649"},"restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}}}}}},"dynamic":{"id":"dynamic","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Resource","version":"2.206.0","metadata":[{"parent":"*","pathPart":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cfapilambdaoverrideLambdaRestApi6E7952FC","RootResourceId"]},"pathPart":"dynamic","restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}},"GET":{"id":"GET","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/GET","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic":{"id":"ApiPermission.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/GET/ApiPermission.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapilambdaoverrideLambdaFunction74CE466F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"/GET/dynamic"]]}}}},"ApiPermission.Test.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic":{"id":"ApiPermission.Test.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/GET/ApiPermission.Test.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapilambdaoverrideLambdaFunction74CE466F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"/test-invoke-stage/GET/dynamic"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/GET/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamoverridebehaviorauthorizer74D77225"},"httpMethod":"GET","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cfapilambdaoverrideLambdaFunction74CE466F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"cfapilambdaoverrideLambdaRestApidynamic88206171"},"restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"stage":{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["cfapilambdaoverrideLambdaRestApiCloudWatchRole0F1F3559","Arn"]}}}},"CloudFrontToApiGateway":{"id":"CloudFrontToApiGateway","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.86.0"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.206.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc826c2a6a3ffe209aed33765f37752084820de0d3b","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc826c2a6a3ffe209aed33765f37752084820de0d3b"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.206.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https","cachePolicy":"*"},"enableLogging":true,"logBucket":"*"},{"addBehavior":["*",{},{"cachePolicy":"*"}]}]},"children":{"Origin1":{"id":"Origin1","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"/"]]}]}]}]}]},"id":"cftaplamoverridebehaviorcfapilambdaoverrideCloudFrontToApiGatewayCloudFrontDistributionOrigin14C42522D","originPath":{"Fn::Join":["",["/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}},{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"/"]]}]}]}]}]},"id":"cftaplamoverridebehaviorcfapilambdaoverrideCloudFrontToApiGatewayCloudFrontDistributionOrigin2D0C9421C","originPath":{"Fn::Join":["",["/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"/dynamic"]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftaplamoverridebehaviorcfapilambdaoverrideCloudFrontToApiGatewayCloudFrontDistributionOrigin14C42522D","cachePolicyId":{"Ref":"SomeCachePolicy40B9E4D4"},"compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewaySetHttpSecurityHeaders67E61E6E","FunctionARN"]},"eventType":"viewer-response"}]},"cacheBehaviors":[{"pathPattern":"/dynamic","targetOriginId":"cftaplamoverridebehaviorcfapilambdaoverrideCloudFrontToApiGatewayCloudFrontDistributionOrigin2D0C9421C","cachePolicyId":{"Ref":"NoCachePolicy1F71EC46"},"compress":true,"viewerProtocolPolicy":"allow-all"}],"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","RegionalDomainName"]}}}}}},"Origin2":{"id":"Origin2","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudFrontDistribution/Origin2","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftaplam-override-behavior/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"cftaplam-override-behavior/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"cftaplam-override-behavior/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"cftaplam-override-behavior/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"cftaplam-override-behavior/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftaplam-override-behavior/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftaplam-override-behavior/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftaplam-override-behavior/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-override-behavior/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-override-behavior/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-override-behavior/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-override-behavior/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"cftaplam-override-behavior":{"id":"cftaplam-override-behavior","path":"cftaplam-override-behavior","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"SomeCachePolicy":{"id":"SomeCachePolicy","path":"cftaplam-override-behavior/SomeCachePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CachePolicy","version":"2.223.0","metadata":[{"cachePolicyName":"*","defaultTtl":"*","minTtl":"*","maxTtl":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/SomeCachePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnCachePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::CachePolicy","aws:cdk:cloudformation:props":{"cachePolicyConfig":{"name":"SomeCachePolicy","minTtl":18000,"maxTtl":36000,"defaultTtl":28800,"parametersInCacheKeyAndForwardedToOrigin":{"cookiesConfig":{"cookieBehavior":"none"},"headersConfig":{"headerBehavior":"none"},"enableAcceptEncodingGzip":false,"enableAcceptEncodingBrotli":false,"queryStringsConfig":{"queryStringBehavior":"none"}}}}}}}},"NoCachePolicy":{"id":"NoCachePolicy","path":"cftaplam-override-behavior/NoCachePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CachePolicy","version":"2.223.0","metadata":[{"cachePolicyName":"*","defaultTtl":"*","minTtl":"*","maxTtl":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/NoCachePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnCachePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::CachePolicy","aws:cdk:cloudformation:props":{"cachePolicyConfig":{"name":"NoCachePolicy","minTtl":0,"maxTtl":0,"defaultTtl":0,"parametersInCacheKeyAndForwardedToOrigin":{"cookiesConfig":{"cookieBehavior":"none"},"headersConfig":{"headerBehavior":"none"},"enableAcceptEncodingGzip":false,"enableAcceptEncodingBrotli":false,"queryStringsConfig":{"queryStringBehavior":"none"}}}}}}}},"cftaplam-override-behavior-authorizerAuthFunction":{"id":"cftaplam-override-behavior-authorizerAuthFunction","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunctionServiceRoleA606974F","Arn"]},"runtime":"nodejs22.x"}}},"cftaplamoverridebehaviorcftaplamoverridebehaviorauthorizer3042C32C:Permissions":{"id":"cftaplamoverridebehaviorcftaplamoverridebehaviorauthorizer3042C32C:Permissions","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizerAuthFunction/cftaplamoverridebehaviorcftaplamoverridebehaviorauthorizer3042C32C:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunction9DD827D6","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"/authorizers/",{"Ref":"cftaplamoverridebehaviorauthorizer74D77225"}]]}}}}}},"cftaplam-override-behavior-authorizer":{"id":"cftaplam-override-behavior-authorizer","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cftaplam-override-behavior-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunction9DD827D6","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunction9DD827D6","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftaplamoverridebehaviorauthorizerAuthFunction9DD827D6","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftaplamoverridebehaviorcftaplamoverridebehaviorauthorizer3042C32C","restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"type":"REQUEST"}}}}},"cf-api-lambda-override":{"id":"cf-api-lambda-override","path":"cftaplam-override-behavior/cf-api-lambda-override","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway-lambda.CloudFrontToApiGatewayToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["cfapilambdaoverrideLambdaFunctionServiceRole4B1A4043","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"cfapilambdaoverrideLambdaFunctioninlinePolicyAddedToExecutionRole0248615B6","roles":[{"Ref":"cfapilambdaoverrideLambdaFunctionServiceRole4B1A4043"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cftaplam-override-behavior/cf-api-lambda-override/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*","proxy":false},{"endpointConfiguration":{"types":["REGIONAL"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*","authorizer":"*"},"handler":"*","proxy":false}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["REGIONAL"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["cfapilambdaoverrideApiAccessLogGroup2665068D","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"cfapilambdaoverrideLambdaRestApiDeployment82ACBB00eff3607850f915efb43bbead11999a10"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"static":{"id":"static","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/static","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Resource","version":"2.223.0","metadata":[{"parent":"*","pathPart":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/static/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cfapilambdaoverrideLambdaRestApi6E7952FC","RootResourceId"]},"pathPart":"static","restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}},"GET":{"id":"GET","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/static/GET","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/static/GET/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamoverridebehaviorauthorizer74D77225"},"httpMethod":"GET","integration":{"type":"HTTP_PROXY","uri":"http://amazon.com","integrationHttpMethod":"GET"},"resourceId":{"Ref":"cfapilambdaoverrideLambdaRestApistaticC2ECB649"},"restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}}}}}},"dynamic":{"id":"dynamic","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Resource","version":"2.223.0","metadata":[{"parent":"*","pathPart":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cfapilambdaoverrideLambdaRestApi6E7952FC","RootResourceId"]},"pathPart":"dynamic","restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}},"GET":{"id":"GET","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/GET","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic":{"id":"ApiPermission.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/GET/ApiPermission.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapilambdaoverrideLambdaFunction74CE466F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"/GET/dynamic"]]}}}},"ApiPermission.Test.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic":{"id":"ApiPermission.Test.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/GET/ApiPermission.Test.cftaplamoverridebehaviorcfapilambdaoverrideLambdaRestApiE3676062.GET..dynamic","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cfapilambdaoverrideLambdaFunction74CE466F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"/test-invoke-stage/GET/dynamic"]]}}}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/Default/dynamic/GET/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftaplamoverridebehaviorauthorizer74D77225"},"httpMethod":"GET","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cfapilambdaoverrideLambdaFunction74CE466F","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"cfapilambdaoverrideLambdaRestApidynamic88206171"},"restApiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"}}}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},"stage":{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cftaplam-override-behavior/cf-api-lambda-override/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["cfapilambdaoverrideLambdaRestApiCloudWatchRole0F1F3559","Arn"]}}}},"CloudFrontToApiGateway":{"id":"CloudFrontToApiGateway","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.95.1"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.223.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc826c2a6a3ffe209aed33765f37752084820de0d3b","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc826c2a6a3ffe209aed33765f37752084820de0d3b"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucketAccessLog9CEB5CD9"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.223.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https","cachePolicy":"*"},"enableLogging":true,"logBucket":"*"},{"addBehavior":["*",{},{"cachePolicy":"*"}]}]},"children":{"Origin1":{"id":"Origin1","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"/"]]}]}]}]}]},"id":"cftaplamoverridebehaviorcfapilambdaoverrideCloudFrontToApiGatewayCloudFrontDistributionOrigin14C42522D","originPath":{"Fn::Join":["",["/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}},{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cfapilambdaoverrideLambdaRestApi6E7952FC"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"/"]]}]}]}]}]},"id":"cftaplamoverridebehaviorcfapilambdaoverrideCloudFrontToApiGatewayCloudFrontDistributionOrigin2D0C9421C","originPath":{"Fn::Join":["",["/",{"Ref":"cfapilambdaoverrideLambdaRestApiDeploymentStageprodC4F6FBB5"},"/dynamic"]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftaplamoverridebehaviorcfapilambdaoverrideCloudFrontToApiGatewayCloudFrontDistributionOrigin14C42522D","cachePolicyId":{"Ref":"SomeCachePolicy40B9E4D4"},"compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewaySetHttpSecurityHeaders67E61E6E","FunctionARN"]},"eventType":"viewer-response"}]},"cacheBehaviors":[{"pathPattern":"/dynamic","targetOriginId":"cftaplamoverridebehaviorcfapilambdaoverrideCloudFrontToApiGatewayCloudFrontDistributionOrigin2D0C9421C","cachePolicyId":{"Ref":"NoCachePolicy1F71EC46"},"compress":true,"viewerProtocolPolicy":"allow-all"}],"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0","RegionalDomainName"]}}}}}},"Origin2":{"id":"Origin2","path":"cftaplam-override-behavior/cf-api-lambda-override/CloudFrontToApiGateway/CloudFrontDistribution/Origin2","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftaplam-override-behavior/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"cftaplam-override-behavior/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"cftaplam-override-behavior/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"cftaplam-override-behavior/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"cftaplam-override-behavior/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftaplam-override-behavior/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftaplam-override-behavior/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftaplam-override-behavior/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-override-behavior/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-override-behavior/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftaplam-override-behavior/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftaplam-override-behavior/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts index 8c74a2dbb..c71c063d4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts @@ -398,7 +398,7 @@ test('Confirm suppression of Usage Plan', () => { apiGatewayProps: { defaultMethodOptions: { authorizationType: 'AWS_NONE' }}, lambdaFunctionProps: { code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', }, createUsagePlan: false diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.adoc b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.adoc index 3896d137e..950cfa4dc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.adoc @@ -51,7 +51,7 @@ import * as api from 'aws-cdk-lib/aws-apigateway'; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }; @@ -121,7 +121,7 @@ import software.amazon.awscdk.services.apigateway.*; import software.amazon.awsconstructs.services.cloudfrontapigateway.*; final Function lambdaFunction = Function.Builder.create(this, "IndexHandler") - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build(); diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapi-customCloudfrontLoggingBucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapi-customCloudfrontLoggingBucket.assets.json index 447d41050..d2199f34b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapi-customCloudfrontLoggingBucket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapi-customCloudfrontLoggingBucket.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "cftapi-customCloudfrontLoggingBucket-apiFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -29,16 +29,16 @@ } } }, - "3745573927081ca028a93031f62e603f5c24e0cbbba8b1ed6716e4ba53e2871c": { + "981e9947cfdf286cbc3c0bd764c5f817185c70795b2cf27b6659a0d914494eb0": { "displayName": "cftapi-customCloudfrontLoggingBucket Template", "source": { "path": "cftapi-customCloudfrontLoggingBucket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-c343a6ec": { + "current_account-current_region-dac4ca24": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3745573927081ca028a93031f62e603f5c24e0cbbba8b1ed6716e4ba53e2871c.json", + "objectKey": "981e9947cfdf286cbc3c0bd764c5f817185c70795b2cf27b6659a0d914494eb0.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapi-customCloudfrontLoggingBucket.template.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapi-customCloudfrontLoggingBucket.template.json index 38ca0e3a9..38ec9bbc3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapi-customCloudfrontLoggingBucket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapi-customCloudfrontLoggingBucket.template.json @@ -39,7 +39,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -48,7 +48,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "cftapicustomCloudfrontLoggingBucketapiFunctionServiceRole487119AE" @@ -110,7 +110,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -119,7 +119,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunctionServiceRole13E010C8" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapicustomCloudfrontLoggingBucketIntegDefaultTestDeployAssertE1E3B6E7.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapicustomCloudfrontLoggingBucketIntegDefaultTestDeployAssertE1E3B6E7.assets.json index c7d24f9fc..41c1ed74c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapicustomCloudfrontLoggingBucketIntegDefaultTestDeployAssertE1E3B6E7.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/cftapicustomCloudfrontLoggingBucketIntegDefaultTestDeployAssertE1E3B6E7.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "cftapicustomCloudfrontLoggingBucketIntegDefaultTestDeployAssertE1E3B6E7 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/integ.json index b83c33d50..b100357f4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "cftapicustomCloudfrontLoggingBucketIntegDefaultTestDeployAssertE1E3B6E7" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/manifest.json index 4a273f806..600ab81be 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3745573927081ca028a93031f62e603f5c24e0cbbba8b1ed6716e4ba53e2871c.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/981e9947cfdf286cbc3c0bd764c5f817185c70795b2cf27b6659a0d914494eb0.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -550,57 +550,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -609,7 +600,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -686,7 +680,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -830,7 +824,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -859,7 +856,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -923,7 +923,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -957,7 +960,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -980,7 +986,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1010,6 +1019,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/tree.json index afaf0ec0e..5cc9f0eaa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-customCloudfrontLoggingBucket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"cftapi-customCloudfrontLoggingBucket":{"id":"cftapi-customCloudfrontLoggingBucket","path":"cftapi-customCloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"cftapi-customCloudfrontLoggingBucket-apiFunction":{"id":"cftapi-customCloudfrontLoggingBucket-apiFunction","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionServiceRole487119AE","Arn"]},"runtime":"nodejs20.x"}}}}},"cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction":{"id":"cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunctionServiceRole13E010C8","Arn"]},"runtime":"nodejs20.x"}}},"cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiauthorizerFD948D42:Permissions":{"id":"cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiauthorizerFD948D42:Permissions","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiauthorizerFD948D42:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunction38CBEC38","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/authorizers/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiauthorizerEDC48D75"}]]}}}}}},"cftapi-customCloudfrontLoggingBucket-api-authorizer":{"id":"cftapi-customCloudfrontLoggingBucket-api-authorizer","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunction38CBEC38","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunction38CBEC38","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunction38CBEC38","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiauthorizerFD948D42","restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"type":"REQUEST"}}}}},"cftapi-customCloudfrontLoggingBucket-apiApi":{"id":"cftapi-customCloudfrontLoggingBucket-apiApi","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"cftapi-customCloudfrontLoggingBucket-apiApi"}}},"Deployment":{"id":"Deployment","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentDB7FF03997dbc838d7f12d245d020a7a30e625fd"},"restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiApiBB89469A","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"}}}},"ANY":{"id":"ANY","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}":{"id":"ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/ANY/ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentStageprod71B9DCD4"},"/*/*"]]}}}},"ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}":{"id":"ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/ANY/ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiauthorizerEDC48D75"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiproxy98487F5F"},"restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"}}}}}}}},"ANY":{"id":"ANY","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..":{"id":"ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/ANY/ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentStageprod71B9DCD4"},"/*/"]]}}}},"ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..":{"id":"ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/ANY/ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiauthorizerEDC48D75"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiApiBB89469A","RootResourceId"]},"restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"}}}}}}}}}},"cf-apigw":{"id":"cf-apigw","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.86.0"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.206.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc8cc607f355edae7717ef60e6468962d623a2d5ea9","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc8cc607f355edae7717ef60e6468962d623a2d5ea9"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapigwCloudfrontLoggingBucketAccessLog6DDE9754"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucketAccessLog6DDE9754","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucketAccessLog6DDE9754","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucketAccessLog6DDE9754","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"cfapigwCloudfrontLoggingBucketAccessLog6DDE9754"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapigwCloudfrontLoggingBucket79FE4195"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.206.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentStageprod71B9DCD4"},"/"]]}]}]}]}]},"id":"cftapicustomCloudfrontLoggingBucketcfapigwCloudFrontDistributionOrigin150F4E889","originPath":{"Fn::Join":["",["/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentStageprod71B9DCD4"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftapicustomCloudfrontLoggingBucketcfapigwCloudFrontDistributionOrigin150F4E889","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["cfapigwSetHttpSecurityHeaders07A0F0C0","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","RegionalDomainName"]}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftapi-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"cftapi-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"cftapi-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"cftapi-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"cftapi-customCloudfrontLoggingBucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftapi-customCloudfrontLoggingBucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftapi-customCloudfrontLoggingBucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"cftapi-customCloudfrontLoggingBucket":{"id":"cftapi-customCloudfrontLoggingBucket","path":"cftapi-customCloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"cftapi-customCloudfrontLoggingBucket-apiFunction":{"id":"cftapi-customCloudfrontLoggingBucket-apiFunction","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionServiceRole487119AE","Arn"]},"runtime":"nodejs22.x"}}}}},"cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction":{"id":"cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunctionServiceRole13E010C8","Arn"]},"runtime":"nodejs22.x"}}},"cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiauthorizerFD948D42:Permissions":{"id":"cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiauthorizerFD948D42:Permissions","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizerAuthFunction/cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiauthorizerFD948D42:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunction38CBEC38","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/authorizers/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiauthorizerEDC48D75"}]]}}}}}},"cftapi-customCloudfrontLoggingBucket-api-authorizer":{"id":"cftapi-customCloudfrontLoggingBucket-api-authorizer","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-api-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunction38CBEC38","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunction38CBEC38","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiauthorizerAuthFunction38CBEC38","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiauthorizerFD948D42","restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"type":"REQUEST"}}}}},"cftapi-customCloudfrontLoggingBucket-apiApi":{"id":"cftapi-customCloudfrontLoggingBucket-apiApi","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"cftapi-customCloudfrontLoggingBucket-apiApi"}}},"Deployment":{"id":"Deployment","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentDB7FF03997dbc838d7f12d245d020a7a30e625fd"},"restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiApiBB89469A","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"}}}},"ANY":{"id":"ANY","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}":{"id":"ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/ANY/ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentStageprod71B9DCD4"},"/*/*"]]}}}},"ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}":{"id":"ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/ANY/ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiauthorizerEDC48D75"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiproxy98487F5F"},"restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"}}}}}}}},"ANY":{"id":"ANY","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..":{"id":"ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/ANY/ApiPermission.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentStageprod71B9DCD4"},"/*/"]]}}}},"ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..":{"id":"ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/ANY/ApiPermission.Test.cftapicustomCloudfrontLoggingBucketcftapicustomCloudfrontLoggingBucketapiApi78AFA9D9.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cftapi-customCloudfrontLoggingBucket-apiApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiauthorizerEDC48D75"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiFunctionA537178D","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["cftapicustomCloudfrontLoggingBucketapiApiBB89469A","RootResourceId"]},"restApiId":{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"}}}}}}}}}},"cf-apigw":{"id":"cf-apigw","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.95.1"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.223.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc8cc607f355edae7717ef60e6468962d623a2d5ea9","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc8cc607f355edae7717ef60e6468962d623a2d5ea9"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapigwCloudfrontLoggingBucketAccessLog6DDE9754"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucketAccessLog6DDE9754","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucketAccessLog6DDE9754","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucketAccessLog6DDE9754","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"cfapigwCloudfrontLoggingBucketAccessLog6DDE9754"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"cfapigwCloudfrontLoggingBucket79FE4195"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.223.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftapi-customCloudfrontLoggingBucket/cf-apigw/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiBB89469A"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentStageprod71B9DCD4"},"/"]]}]}]}]}]},"id":"cftapicustomCloudfrontLoggingBucketcfapigwCloudFrontDistributionOrigin150F4E889","originPath":{"Fn::Join":["",["/",{"Ref":"cftapicustomCloudfrontLoggingBucketapiApiDeploymentStageprod71B9DCD4"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftapicustomCloudfrontLoggingBucketcfapigwCloudFrontDistributionOrigin150F4E889","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["cfapigwSetHttpSecurityHeaders07A0F0C0","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["cfapigwCloudfrontLoggingBucket79FE4195","RegionalDomainName"]}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftapi-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"cftapi-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"cftapi-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"cftapi-customCloudfrontLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"cftapi-customCloudfrontLoggingBucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftapi-customCloudfrontLoggingBucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftapi-customCloudfrontLoggingBucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftapi-customCloudfrontLoggingBucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapi-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapi-no-arguments.assets.json index c005e698b..9bad51550 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapi-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapi-no-arguments.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "cftapi-no-arguments-apiFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -29,16 +29,16 @@ } } }, - "4f7e10ef30e7fa474012fb86f0c9db523cc621ed25d5d85c33255f4ccb6ff2ca": { + "dbd5b488bdb1c5617e86f0e1818b8eff9691b0ead1b72eaf2ae9696cf389c28d": { "displayName": "cftapi-no-arguments Template", "source": { "path": "cftapi-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-fd5f47bf": { + "current_account-current_region-3520c5b7": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4f7e10ef30e7fa474012fb86f0c9db523cc621ed25d5d85c33255f4ccb6ff2ca.json", + "objectKey": "dbd5b488bdb1c5617e86f0e1818b8eff9691b0ead1b72eaf2ae9696cf389c28d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapi-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapi-no-arguments.template.json index d78e94580..4d663356e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapi-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapi-no-arguments.template.json @@ -39,7 +39,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -48,7 +48,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "cftapinoargumentsapiFunctionServiceRole6D0B7CBA" @@ -110,7 +110,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -119,7 +119,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "cftapinoargumentsapiauthorizerAuthFunctionServiceRole33BC576C" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapinoargumentsIntegDefaultTestDeployAssert86305603.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapinoargumentsIntegDefaultTestDeployAssert86305603.assets.json index 6f761da57..887d710d8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapinoargumentsIntegDefaultTestDeployAssert86305603.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/cftapinoargumentsIntegDefaultTestDeployAssert86305603.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "cftapinoargumentsIntegDefaultTestDeployAssert86305603 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/integ.json index 5277ed2b9..ee49c3f67 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "cftapi-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "cftapinoargumentsIntegDefaultTestDeployAssert86305603" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/manifest.json index e087cfa7d..d41585234 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4f7e10ef30e7fa474012fb86f0c9db523cc621ed25d5d85c33255f4ccb6ff2ca.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/dbd5b488bdb1c5617e86f0e1818b8eff9691b0ead1b72eaf2ae9696cf389c28d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -550,57 +550,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -609,7 +600,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -686,7 +680,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -830,7 +824,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -859,7 +856,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -923,7 +923,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -957,7 +960,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -980,7 +986,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1010,6 +1019,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/tree.json index f7ad5aaaf..c1bbb804c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.cftapi-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"cftapi-no-arguments":{"id":"cftapi-no-arguments","path":"cftapi-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"cftapi-no-arguments-apiFunction":{"id":"cftapi-no-arguments-apiFunction","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftapinoargumentsapiFunctionServiceRole6D0B7CBA","Arn"]},"runtime":"nodejs20.x"}}}}},"cftapi-no-arguments-api-authorizerAuthFunction":{"id":"cftapi-no-arguments-api-authorizerAuthFunction","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunctionServiceRole33BC576C","Arn"]},"runtime":"nodejs20.x"}}},"cftapinoargumentscftapinoargumentsapiauthorizerCA624E68:Permissions":{"id":"cftapinoargumentscftapinoargumentsapiauthorizerCA624E68:Permissions","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/cftapinoargumentscftapinoargumentsapiauthorizerCA624E68:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunction5A0061F7","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/authorizers/",{"Ref":"cftapinoargumentsapiauthorizer4CAD6709"}]]}}}}}},"cftapi-no-arguments-api-authorizer":{"id":"cftapi-no-arguments-api-authorizer","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunction5A0061F7","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunction5A0061F7","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunction5A0061F7","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftapinoargumentscftapinoargumentsapiauthorizerCA624E68","restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"},"type":"REQUEST"}}}}},"cftapi-no-arguments-apiApi":{"id":"cftapi-no-arguments-apiApi","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"cftapi-no-arguments-apiApi"}}},"Deployment":{"id":"Deployment","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"cftapinoargumentsapiApiDeployment65E83A27bed264180672ee2a8968ec6f7063db50"},"restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cftapinoargumentsapiApiF33C30EC","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"}}}},"ANY":{"id":"ANY","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}":{"id":"ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/ANY/ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/",{"Ref":"cftapinoargumentsapiApiDeploymentStageprod006D7243"},"/*/*"]]}}}},"ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}":{"id":"ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/ANY/ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftapinoargumentsapiauthorizer4CAD6709"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"cftapinoargumentsapiApiproxy1C21A7B6"},"restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"}}}}}}}},"ANY":{"id":"ANY","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..":{"id":"ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/ANY/ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/",{"Ref":"cftapinoargumentsapiApiDeploymentStageprod006D7243"},"/*/"]]}}}},"ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..":{"id":"ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/ANY/ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftapinoargumentsapiauthorizer4CAD6709"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["cftapinoargumentsapiApiF33C30EC","RootResourceId"]},"restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"}}}}}}}}}},"test-cloudfront-apigateway":{"id":"test-cloudfront-apigateway","path":"cftapi-no-arguments/test-cloudfront-apigateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.86.0"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftapi-no-arguments/test-cloudfront-apigateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.206.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc8b8093f33c7dec7c3b269919bb775882671d92f95","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc8b8093f33c7dec7c3b269919bb775882671d92f95"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.206.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cftapinoargumentsapiApiF33C30EC"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cftapinoargumentsapiApiDeploymentStageprod006D7243"},"/"]]}]}]}]}]},"id":"cftapinoargumentstestcloudfrontapigatewayCloudFrontDistributionOrigin187166803","originPath":{"Fn::Join":["",["/",{"Ref":"cftapinoargumentsapiApiDeploymentStageprod006D7243"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftapinoargumentstestcloudfrontapigatewayCloudFrontDistributionOrigin187166803","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["testcloudfrontapigatewaySetHttpSecurityHeadersD8DBA642","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","RegionalDomainName"]}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftapi-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"cftapi-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"cftapi-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"cftapi-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"cftapi-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftapi-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftapi-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftapi-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftapi-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftapi-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftapi-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftapi-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"cftapi-no-arguments":{"id":"cftapi-no-arguments","path":"cftapi-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"cftapi-no-arguments-apiFunction":{"id":"cftapi-no-arguments-apiFunction","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftapinoargumentsapiFunctionServiceRole6D0B7CBA","Arn"]},"runtime":"nodejs22.x"}}}}},"cftapi-no-arguments-api-authorizerAuthFunction":{"id":"cftapi-no-arguments-api-authorizerAuthFunction","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunctionServiceRole33BC576C","Arn"]},"runtime":"nodejs22.x"}}},"cftapinoargumentscftapinoargumentsapiauthorizerCA624E68:Permissions":{"id":"cftapinoargumentscftapinoargumentsapiauthorizerCA624E68:Permissions","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizerAuthFunction/cftapinoargumentscftapinoargumentsapiauthorizerCA624E68:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunction5A0061F7","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/authorizers/",{"Ref":"cftapinoargumentsapiauthorizer4CAD6709"}]]}}}}}},"cftapi-no-arguments-api-authorizer":{"id":"cftapi-no-arguments-api-authorizer","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-api-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunction5A0061F7","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunction5A0061F7","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapinoargumentsapiauthorizerAuthFunction5A0061F7","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"cftapinoargumentscftapinoargumentsapiauthorizerCA624E68","restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"},"type":"REQUEST"}}}}},"cftapi-no-arguments-apiApi":{"id":"cftapi-no-arguments-apiApi","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"cftapi-no-arguments-apiApi"}}},"Deployment":{"id":"Deployment","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"cftapinoargumentsapiApiDeployment65E83A27bed264180672ee2a8968ec6f7063db50"},"restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["cftapinoargumentsapiApiF33C30EC","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"}}}},"ANY":{"id":"ANY","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}":{"id":"ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/ANY/ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/",{"Ref":"cftapinoargumentsapiApiDeploymentStageprod006D7243"},"/*/*"]]}}}},"ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}":{"id":"ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/ANY/ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftapinoargumentsapiauthorizer4CAD6709"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"cftapinoargumentsapiApiproxy1C21A7B6"},"restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"}}}}}}}},"ANY":{"id":"ANY","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..":{"id":"ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/ANY/ApiPermission.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/",{"Ref":"cftapinoargumentsapiApiDeploymentStageprod006D7243"},"/*/"]]}}}},"ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..":{"id":"ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/ANY/ApiPermission.Test.cftapinoargumentscftapinoargumentsapiApiC6105EBE.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"cftapinoargumentsapiApiF33C30EC"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/cftapi-no-arguments-apiApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"cftapinoargumentsapiauthorizer4CAD6709"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["cftapinoargumentsapiFunctionFF0A9430","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["cftapinoargumentsapiApiF33C30EC","RootResourceId"]},"restApiId":{"Ref":"cftapinoargumentsapiApiF33C30EC"}}}}}}}}}},"test-cloudfront-apigateway":{"id":"test-cloudfront-apigateway","path":"cftapi-no-arguments/test-cloudfront-apigateway","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-apigateway.CloudFrontToApiGateway","version":"2.95.1"},"children":{"SetHttpSecurityHeaders":{"id":"SetHttpSecurityHeaders","path":"cftapi-no-arguments/test-cloudfront-apigateway/SetHttpSecurityHeaders","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Function","version":"2.223.0","metadata":[{"functionName":"*","code":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/SetHttpSecurityHeaders/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Function","aws:cdk:cloudformation:props":{"autoPublish":true,"functionCode":"function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }","functionConfig":{"comment":"SetHttpSecurityHeadersc8b8093f33c7dec7c3b269919bb775882671d92f95","runtime":"cloudfront-js-1.0"},"name":"SetHttpSecurityHeadersc8b8093f33c7dec7c3b269919bb775882671d92f95"}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfrontapigatewayCloudfrontLoggingBucketAccessLog4D9DC9FB"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.223.0","metadata":[{"defaultBehavior":{"origin":"*","functionAssociations":[{"eventType":"viewer-response","function":"*"}],"viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cftapi-no-arguments/test-cloudfront-apigateway/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::Select":[0,{"Fn::Split":["/",{"Fn::Select":[1,{"Fn::Split":["://",{"Fn::Join":["",["https://",{"Ref":"cftapinoargumentsapiApiF33C30EC"},".execute-api.",{"Ref":"AWS::Region"},".",{"Ref":"AWS::URLSuffix"},"/",{"Ref":"cftapinoargumentsapiApiDeploymentStageprod006D7243"},"/"]]}]}]}]}]},"id":"cftapinoargumentstestcloudfrontapigatewayCloudFrontDistributionOrigin187166803","originPath":{"Fn::Join":["",["/",{"Ref":"cftapinoargumentsapiApiDeploymentStageprod006D7243"}]]},"customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"https-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cftapinoargumentstestcloudfrontapigatewayCloudFrontDistributionOrigin187166803","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https","functionAssociations":[{"functionArn":{"Fn::GetAtt":["testcloudfrontapigatewaySetHttpSecurityHeadersD8DBA642","FunctionARN"]},"eventType":"viewer-response"}]},"httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8","RegionalDomainName"]}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cftapi-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"cftapi-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"cftapi-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"cftapi-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"cftapi-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cftapi-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cftapi-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cftapi-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cftapi-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftapi-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cftapi-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cftapi-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js new file mode 100644 index 000000000..17c9ea7df --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Retry=exports.includeStackTraces=exports.MISSING_PHYSICAL_ID_MARKER=exports.CREATE_FAILED_PHYSICAL_ID_MARKER=void 0,exports.submitResponse=submitResponse,exports.safeHandler=safeHandler,exports.redactDataFromPayload=redactDataFromPayload;const url=require("url"),outbound_1=require("./outbound"),util_1=require("./util");exports.CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",exports.MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function submitResponse(status,event,options={}){const json={Status:status,Reason:options.reason||status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||exports.MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:options.noEcho,Data:event.Data},responseBody=JSON.stringify(json),parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;options?.noEcho?(0,util_1.log)("submit redacted response to cloudformation",loggingSafeUrl,redactDataFromPayload(json)):(0,util_1.log)("submit response to cloudformation",loggingSafeUrl,json);const retryOptions={attempts:5,sleep:1e3};await(0,util_1.withRetries)(retryOptions,outbound_1.httpRequest)({hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}},responseBody)}exports.includeStackTraces=!0;function safeHandler(block){return async event=>{if(event.RequestType==="Delete"&&event.PhysicalResourceId===exports.CREATE_FAILED_PHYSICAL_ID_MARKER){(0,util_1.log)("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{await block(event)}catch(e){if(e instanceof Retry)throw(0,util_1.log)("retry requested by handler"),e;event.PhysicalResourceId||(event.RequestType==="Create"?((0,util_1.log)("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),event.PhysicalResourceId=exports.CREATE_FAILED_PHYSICAL_ID_MARKER):(0,util_1.log)(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify({...event,ResponseURL:"..."})}`)),await submitResponse("FAILED",event,{reason:exports.includeStackTraces?e.stack:e.message})}}}function redactDataFromPayload(payload){const redactedPayload=JSON.parse(JSON.stringify(payload));if(redactedPayload.Data){const keys=Object.keys(redactedPayload.Data);for(const key of keys)redactedPayload.Data[key]="*****"}return redactedPayload}class Retry extends Error{}exports.Retry=Retry; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js new file mode 100644 index 000000000..5c78d63db --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME=exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME=exports.FRAMEWORK_ON_EVENT_HANDLER_NAME=exports.WAITER_STATE_MACHINE_ARN_ENV=exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV=exports.USER_ON_EVENT_FUNCTION_ARN_ENV=void 0,exports.USER_ON_EVENT_FUNCTION_ARN_ENV="USER_ON_EVENT_FUNCTION_ARN",exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV="USER_IS_COMPLETE_FUNCTION_ARN",exports.WAITER_STATE_MACHINE_ARN_ENV="WAITER_STATE_MACHINE_ARN",exports.FRAMEWORK_ON_EVENT_HANDLER_NAME="onEvent",exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME="isComplete",exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME="onTimeout"; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js new file mode 100644 index 000000000..952048e6f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js @@ -0,0 +1,3 @@ +"use strict";const cfnResponse=require("./cfn-response"),consts=require("./consts"),outbound_1=require("./outbound"),util_1=require("./util");async function onEvent(cfnRequest){const sanitizedRequest={...cfnRequest,ResponseURL:"..."};(0,util_1.log)("onEventHandler",sanitizedRequest),cfnRequest.ResourceProperties=cfnRequest.ResourceProperties||{};const onEventResult=await invokeUserFunction(consts.USER_ON_EVENT_FUNCTION_ARN_ENV,sanitizedRequest,cfnRequest.ResponseURL);onEventResult?.NoEcho?(0,util_1.log)("redacted onEvent returned:",cfnResponse.redactDataFromPayload(onEventResult)):(0,util_1.log)("onEvent returned:",onEventResult);const resourceEvent=createResponseEvent(cfnRequest,onEventResult),sanitizedEvent={...resourceEvent,ResponseURL:"..."};if(onEventResult?.NoEcho?(0,util_1.log)("readacted event:",cfnResponse.redactDataFromPayload(sanitizedEvent)):(0,util_1.log)("event:",sanitizedEvent),!process.env[consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV])return cfnResponse.submitResponse("SUCCESS",resourceEvent,{noEcho:resourceEvent.NoEcho});const waiter={stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId,input:JSON.stringify(resourceEvent)};(0,util_1.log)("starting waiter",{stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId}),await(0,outbound_1.startExecution)(waiter)}async function isComplete(event){const sanitizedRequest={...event,ResponseURL:"..."};event?.NoEcho?(0,util_1.log)("redacted isComplete request",cfnResponse.redactDataFromPayload(sanitizedRequest)):(0,util_1.log)("isComplete",sanitizedRequest);const isCompleteResult=await invokeUserFunction(consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV,sanitizedRequest,event.ResponseURL);if(event?.NoEcho?(0,util_1.log)("redacted user isComplete returned:",cfnResponse.redactDataFromPayload(isCompleteResult)):(0,util_1.log)("user isComplete returned:",isCompleteResult),!isCompleteResult.IsComplete)throw isCompleteResult.Data&&Object.keys(isCompleteResult.Data).length>0?new Error('"Data" is not allowed if "IsComplete" is "False"'):new cfnResponse.Retry(JSON.stringify(event));const response={...event,...isCompleteResult,Data:{...event.Data,...isCompleteResult.Data}};await cfnResponse.submitResponse("SUCCESS",response,{noEcho:event.NoEcho})}async function onTimeout(timeoutEvent){(0,util_1.log)("timeoutHandler",timeoutEvent);const isCompleteRequest=JSON.parse(JSON.parse(timeoutEvent.Cause).errorMessage);await cfnResponse.submitResponse("FAILED",isCompleteRequest,{reason:"Operation timed out"})}async function invokeUserFunction(functionArnEnv,sanitizedPayload,responseUrl){const functionArn=(0,util_1.getEnv)(functionArnEnv);(0,util_1.log)(`executing user function ${functionArn} with payload`,sanitizedPayload);const resp=await(0,outbound_1.invokeFunction)({FunctionName:functionArn,Payload:JSON.stringify({...sanitizedPayload,ResponseURL:responseUrl})});(0,util_1.log)("user function response:",resp,typeof resp);const jsonPayload=(0,util_1.parseJsonPayload)(resp.Payload);if(resp.FunctionError){(0,util_1.log)("user function threw an error:",resp.FunctionError);const errorMessage=jsonPayload.errorMessage||"error",arn=functionArn.split(":"),functionName=arn[arn.length-1],message=[errorMessage,"",`Logs: /aws/lambda/${functionName}`,""].join(` +`),e=new Error(message);throw jsonPayload.trace&&(e.stack=[message,...jsonPayload.trace.slice(1)].join(` +`)),e}return jsonPayload}function createResponseEvent(cfnRequest,onEventResult){onEventResult=onEventResult||{};const physicalResourceId=onEventResult.PhysicalResourceId||defaultPhysicalResourceId(cfnRequest);if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}" during deletion`);return cfnRequest.RequestType==="Update"&&physicalResourceId!==cfnRequest.PhysicalResourceId&&(0,util_1.log)(`UPDATE: changing physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}"`),{...cfnRequest,...onEventResult,PhysicalResourceId:physicalResourceId}}function defaultPhysicalResourceId(req){switch(req.RequestType){case"Create":return req.RequestId;case"Update":case"Delete":return req.PhysicalResourceId;default:throw new Error(`Invalid "RequestType" in request "${JSON.stringify(req)}"`)}}module.exports={[consts.FRAMEWORK_ON_EVENT_HANDLER_NAME]:cfnResponse.safeHandler(onEvent),[consts.FRAMEWORK_IS_COMPLETE_HANDLER_NAME]:cfnResponse.safeHandler(isComplete),[consts.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME]:onTimeout}; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js new file mode 100644 index 000000000..3c900428d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.httpRequest=exports.invokeFunction=exports.startExecution=void 0;const https=require("https"),client_lambda_1=require("@aws-sdk/client-lambda"),client_sfn_1=require("@aws-sdk/client-sfn"),FRAMEWORK_HANDLER_TIMEOUT=9e5,awsSdkConfig={httpOptions:{timeout:FRAMEWORK_HANDLER_TIMEOUT}};async function defaultHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}let sfn,lambda;async function defaultStartExecution(req){return sfn||(sfn=new client_sfn_1.SFN(awsSdkConfig)),sfn.startExecution(req)}async function defaultInvokeFunction(req){lambda||(lambda=new client_lambda_1.Lambda(awsSdkConfig));try{return await lambda.invoke(req)}catch{return await(0,client_lambda_1.waitUntilFunctionActiveV2)({client:lambda,maxWaitTime:300},{FunctionName:req.FunctionName}),lambda.invoke(req)}}exports.startExecution=defaultStartExecution,exports.invokeFunction=defaultInvokeFunction,exports.httpRequest=defaultHttpRequest; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js new file mode 100644 index 000000000..47b472b09 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getEnv=getEnv,exports.log=log,exports.withRetries=withRetries,exports.parseJsonPayload=parseJsonPayload;function getEnv(name){const value=process.env[name];if(!value)throw new Error(`The environment variable "${name}" is not defined`);return value}function log(title,...args){console.log("[provider-framework]",title,...args.map(x=>typeof x=="object"?JSON.stringify(x,void 0,2):x))}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}function parseJsonPayload(payload){const text=new TextDecoder().decode(Buffer.from(payload??""));if(!text)return{};try{return JSON.parse(text)}catch{throw new Error(`return values from user-handlers must be JSON objects. got: "${text}"`)}} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.js new file mode 100644 index 000000000..9f31f8dbc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.js @@ -0,0 +1,129 @@ +"use strict"; +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.updateKeyPolicy = exports.handler = void 0; +const client_kms_1 = require("@aws-sdk/client-kms"); +const kmsClient = new client_kms_1.KMSClient(); +const handler = async (event, context) => { + let status = 'SUCCESS'; + let responseData = {}; + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const kmsKeyId = event.ResourceProperties.KmsKeyId; + const cloudFrontDistributionId = event.ResourceProperties.CloudFrontDistributionId; + const accountId = event.ResourceProperties.AccountId; + const region = process.env.AWS_REGION; + const describeKeyCommandResponse = await kmsClient.send(new client_kms_1.DescribeKeyCommand({ + KeyId: kmsKeyId + })); + if (describeKeyCommandResponse.KeyMetadata?.KeyManager === client_kms_1.KeyManagerType.AWS) { + return { + Status: 'SUCCESS', + Reason: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + }; + } + // The PolicyName is specified as "default" below because that is the only valid name as + // written in the documentation for @aws-sdk/client-kms.GetKeyPolicyCommandInput: + // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-kms/Interface/GetKeyPolicyCommandInput/ + const getKeyPolicyCommandResponse = await kmsClient.send(new client_kms_1.GetKeyPolicyCommand({ + KeyId: kmsKeyId, + PolicyName: 'default' + })); + if (!getKeyPolicyCommandResponse.Policy) { + return { + Status: 'FAILED', + Reason: 'An error occurred while retrieving the key policy.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An error occurred while retrieving the key policy.', + }; + } + // Define the updated key policy to allow CloudFront access + const keyPolicy = JSON.parse(getKeyPolicyCommandResponse?.Policy); + const keyPolicyStatement = { + Sid: 'Grant-CloudFront-Distribution-Key-Usage', + Effect: 'Allow', + Principal: { + Service: 'cloudfront.amazonaws.com', + }, + Action: [ + 'kms:Decrypt', + 'kms:Encrypt', + 'kms:GenerateDataKey*', + 'kms:ReEncrypt*' + ], + Resource: `arn:aws:kms:${region}:${accountId}:key/${kmsKeyId}`, + Condition: { + StringEquals: { + 'AWS:SourceArn': `arn:aws:cloudfront::${accountId}:distribution/${cloudFrontDistributionId}` + } + } + }; + const updatedKeyPolicy = (0, exports.updateKeyPolicy)(keyPolicy, keyPolicyStatement); + await kmsClient.send(new client_kms_1.PutKeyPolicyCommand({ + KeyId: kmsKeyId, + Policy: JSON.stringify(updatedKeyPolicy), + PolicyName: 'default' + })); + } + catch (err) { + status = 'FAILED'; + responseData = { + Error: JSON.stringify(err) + }; + } + } + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; +exports.handler = handler; +/** + * Updates a provided key policy with a provided key policy statement. First checks whether the provided key policy statement + * already exists. If an existing key policy is found with a matching sid, the provided key policy will overwrite the existing + * key policy. If no matching key policy is found, the provided key policy will be appended onto the array of policy statements. + * @param keyPolicy - the JSON.parse'd result of the otherwise stringified key policy. + * @param keyPolicyStatement - the key policy statement to be added to the key policy. + * @returns keyPolicy - the updated key policy. + */ +const updateKeyPolicy = (keyPolicy, keyPolicyStatement) => { + // Check to see if a duplicate key policy exists by matching on the sid. This is to prevent duplicate key policies + // from being added/updated in response to a stack being updated one or more times after initial creation. + const existingKeyPolicyIndex = keyPolicy.Statement.findIndex((statement) => statement.Sid === keyPolicyStatement.Sid); + // If a match is found, overwrite the key policy statement... + // Otherwise, push the new key policy to the array of statements + if (existingKeyPolicyIndex > -1) { + keyPolicy.Statement[existingKeyPolicyIndex] = keyPolicyStatement; + } + else { + keyPolicy.Statement.push(keyPolicyStatement); + } + // Return the result + return keyPolicy; +}; +exports.updateKeyPolicy = updateKeyPolicy; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVILG9EQUE4SDtBQUU5SCxNQUFNLFNBQVMsR0FBRyxJQUFJLHNCQUFTLEVBQUUsQ0FBQztBQUUzQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBVSxFQUFFLE9BQVksRUFBRSxFQUFFO0lBRXhELElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN2QixJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7SUFFdEIsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBRXJFLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7WUFDbkQsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQUM7WUFDbkYsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztZQUNyRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUV0QyxNQUFNLDBCQUEwQixHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLCtCQUFrQixDQUFDO2dCQUM3RSxLQUFLLEVBQUUsUUFBUTthQUNoQixDQUFDLENBQUMsQ0FBQztZQUVKLElBQUksMEJBQTBCLENBQUMsV0FBVyxFQUFFLFVBQVUsS0FBSywyQkFBYyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM5RSxPQUFPO29CQUNMLE1BQU0sRUFBRSxTQUFTO29CQUNqQixNQUFNLEVBQUUsMEZBQTBGO29CQUNsRyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLGFBQWE7b0JBQ3JFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztvQkFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO29CQUMxQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO29CQUMxQyxJQUFJLEVBQUUsMEZBQTBGO2lCQUNqRyxDQUFDO1lBQ0osQ0FBQztZQUVELHdGQUF3RjtZQUN4RixpRkFBaUY7WUFDakYseUhBQXlIO1lBQ3pILE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksZ0NBQW1CLENBQUM7Z0JBQy9FLEtBQUssRUFBRSxRQUFRO2dCQUNmLFVBQVUsRUFBRSxTQUFTO2FBQ3RCLENBQUMsQ0FBQyxDQUFDO1lBRUosSUFBSSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN4QyxPQUFPO29CQUNMLE1BQU0sRUFBRSxRQUFRO29CQUNoQixNQUFNLEVBQUUsb0RBQW9EO29CQUM1RCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLGFBQWE7b0JBQ3JFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztvQkFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO29CQUMxQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO29CQUMxQyxJQUFJLEVBQUUsb0RBQW9EO2lCQUMzRCxDQUFDO1lBQ0osQ0FBQztZQUVELDJEQUEyRDtZQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sa0JBQWtCLEdBQUc7Z0JBQ3pCLEdBQUcsRUFBRSx5Q0FBeUM7Z0JBQzlDLE1BQU0sRUFBRSxPQUFPO2dCQUNmLFNBQVMsRUFBRTtvQkFDVCxPQUFPLEVBQUUsMEJBQTBCO2lCQUNwQztnQkFDRCxNQUFNLEVBQUU7b0JBQ04sYUFBYTtvQkFDYixhQUFhO29CQUNiLHNCQUFzQjtvQkFDdEIsZ0JBQWdCO2lCQUNqQjtnQkFDRCxRQUFRLEVBQUUsZUFBZSxNQUFNLElBQUksU0FBUyxRQUFRLFFBQVEsRUFBRTtnQkFDOUQsU0FBUyxFQUFFO29CQUNULFlBQVksRUFBRTt3QkFDWixlQUFlLEVBQUUsdUJBQXVCLFNBQVMsaUJBQWlCLHdCQUF3QixFQUFFO3FCQUM3RjtpQkFDRjthQUNGLENBQUM7WUFDRixNQUFNLGdCQUFnQixHQUFHLElBQUEsdUJBQWUsRUFBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUV4RSxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxnQ0FBbUIsQ0FBQztnQkFDM0MsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hDLFVBQVUsRUFBRSxTQUFTO2FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixNQUFNLEdBQUcsUUFBUSxDQUFDO1lBQ2xCLFlBQVksR0FBRztnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7YUFDM0IsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3BDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsYUFBYTtRQUNyRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7UUFDMUMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTlGVyxRQUFBLE9BQU8sV0E4RmxCO0FBRUY7Ozs7Ozs7R0FPRztBQUNJLE1BQU0sZUFBZSxHQUFHLENBQUMsU0FBYyxFQUFFLGtCQUF1QixFQUFFLEVBQUU7SUFDekUsa0hBQWtIO0lBQ2xILDBHQUEwRztJQUMxRyxNQUFNLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNILDZEQUE2RDtJQUM3RCxnRUFBZ0U7SUFDaEUsSUFBSSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hDLFNBQVMsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztJQUNuRSxDQUFDO1NBQU0sQ0FBQztRQUNOLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELG9CQUFvQjtJQUNwQixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFiVyxRQUFBLGVBQWUsbUJBYTFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgS01TQ2xpZW50LCBHZXRLZXlQb2xpY3lDb21tYW5kLCBEZXNjcmliZUtleUNvbW1hbmQsIFB1dEtleVBvbGljeUNvbW1hbmQsIEtleU1hbmFnZXJUeXBlIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1rbXNcIjtcblxuY29uc3Qga21zQ2xpZW50ID0gbmV3IEtNU0NsaWVudCgpO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9IGFzeW5jIChldmVudDogYW55LCBjb250ZXh0OiBhbnkpID0+IHtcblxuICBsZXQgc3RhdHVzID0gJ1NVQ0NFU1MnO1xuICBsZXQgcmVzcG9uc2VEYXRhID0ge307XG5cbiAgaWYgKGV2ZW50LlJlcXVlc3RUeXBlID09PSAnQ3JlYXRlJyB8fCBldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ1VwZGF0ZScpIHtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBrbXNLZXlJZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5LbXNLZXlJZDtcbiAgICAgIGNvbnN0IGNsb3VkRnJvbnREaXN0cmlidXRpb25JZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5DbG91ZEZyb250RGlzdHJpYnV0aW9uSWQ7XG4gICAgICBjb25zdCBhY2NvdW50SWQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuQWNjb3VudElkO1xuICAgICAgY29uc3QgcmVnaW9uID0gcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTjtcblxuICAgICAgY29uc3QgZGVzY3JpYmVLZXlDb21tYW5kUmVzcG9uc2UgPSBhd2FpdCBrbXNDbGllbnQuc2VuZChuZXcgRGVzY3JpYmVLZXlDb21tYW5kKHtcbiAgICAgICAgS2V5SWQ6IGttc0tleUlkXG4gICAgICB9KSk7XG5cbiAgICAgIGlmIChkZXNjcmliZUtleUNvbW1hbmRSZXNwb25zZS5LZXlNZXRhZGF0YT8uS2V5TWFuYWdlciA9PT0gS2V5TWFuYWdlclR5cGUuQVdTKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgU3RhdHVzOiAnU1VDQ0VTUycsXG4gICAgICAgICAgUmVhc29uOiAnQW4gQVdTIG1hbmFnZWQga2V5IHdhcyBwcm92aWRlZCwgbm8gYWN0aW9uIG5lZWRlZCBmcm9tIHRoZSBjdXN0b20gcmVzb3VyY2UsIGV4aXRpbmcgbm93LicsXG4gICAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPz8gY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgICAgICAgIFN0YWNrSWQ6IGV2ZW50LlN0YWNrSWQsXG4gICAgICAgICAgUmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgICAgICAgTG9naWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgICAgIERhdGE6ICdBbiBBV1MgbWFuYWdlZCBrZXkgd2FzIHByb3ZpZGVkLCBubyBhY3Rpb24gbmVlZGVkIGZyb20gdGhlIGN1c3RvbSByZXNvdXJjZSwgZXhpdGluZyBub3cuJyxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIFBvbGljeU5hbWUgaXMgc3BlY2lmaWVkIGFzIFwiZGVmYXVsdFwiIGJlbG93IGJlY2F1c2UgdGhhdCBpcyB0aGUgb25seSB2YWxpZCBuYW1lIGFzXG4gICAgICAvLyB3cml0dGVuIGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciBAYXdzLXNkay9jbGllbnQta21zLkdldEtleVBvbGljeUNvbW1hbmRJbnB1dDpcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL3YzL2xhdGVzdC9QYWNrYWdlLy1hd3Mtc2RrLWNsaWVudC1rbXMvSW50ZXJmYWNlL0dldEtleVBvbGljeUNvbW1hbmRJbnB1dC9cbiAgICAgIGNvbnN0IGdldEtleVBvbGljeUNvbW1hbmRSZXNwb25zZSA9IGF3YWl0IGttc0NsaWVudC5zZW5kKG5ldyBHZXRLZXlQb2xpY3lDb21tYW5kKHtcbiAgICAgICAgS2V5SWQ6IGttc0tleUlkLFxuICAgICAgICBQb2xpY3lOYW1lOiAnZGVmYXVsdCdcbiAgICAgIH0pKTtcblxuICAgICAgaWYgKCFnZXRLZXlQb2xpY3lDb21tYW5kUmVzcG9uc2UuUG9saWN5KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgU3RhdHVzOiAnRkFJTEVEJyxcbiAgICAgICAgICBSZWFzb246ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZXRyaWV2aW5nIHRoZSBrZXkgcG9saWN5LicsXG4gICAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPz8gY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgICAgICAgIFN0YWNrSWQ6IGV2ZW50LlN0YWNrSWQsXG4gICAgICAgICAgUmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgICAgICAgTG9naWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgICAgIERhdGE6ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZXRyaWV2aW5nIHRoZSBrZXkgcG9saWN5LicsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIERlZmluZSB0aGUgdXBkYXRlZCBrZXkgcG9saWN5IHRvIGFsbG93IENsb3VkRnJvbnQgYWNjZXNzXG4gICAgICBjb25zdCBrZXlQb2xpY3kgPSBKU09OLnBhcnNlKGdldEtleVBvbGljeUNvbW1hbmRSZXNwb25zZT8uUG9saWN5KTtcbiAgICAgIGNvbnN0IGtleVBvbGljeVN0YXRlbWVudCA9IHtcbiAgICAgICAgU2lkOiAnR3JhbnQtQ2xvdWRGcm9udC1EaXN0cmlidXRpb24tS2V5LVVzYWdlJyxcbiAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICBQcmluY2lwYWw6IHtcbiAgICAgICAgICBTZXJ2aWNlOiAnY2xvdWRmcm9udC5hbWF6b25hd3MuY29tJyxcbiAgICAgICAgfSxcbiAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgICAgICAna21zOkVuY3J5cHQnLFxuICAgICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5KicsXG4gICAgICAgICAgJ2ttczpSZUVuY3J5cHQqJ1xuICAgICAgICBdLFxuICAgICAgICBSZXNvdXJjZTogYGFybjphd3M6a21zOiR7cmVnaW9ufToke2FjY291bnRJZH06a2V5LyR7a21zS2V5SWR9YCxcbiAgICAgICAgQ29uZGl0aW9uOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnQVdTOlNvdXJjZUFybic6IGBhcm46YXdzOmNsb3VkZnJvbnQ6OiR7YWNjb3VudElkfTpkaXN0cmlidXRpb24vJHtjbG91ZEZyb250RGlzdHJpYnV0aW9uSWR9YFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRLZXlQb2xpY3kgPSB1cGRhdGVLZXlQb2xpY3koa2V5UG9saWN5LCBrZXlQb2xpY3lTdGF0ZW1lbnQpO1xuXG4gICAgICBhd2FpdCBrbXNDbGllbnQuc2VuZChuZXcgUHV0S2V5UG9saWN5Q29tbWFuZCh7XG4gICAgICAgIEtleUlkOiBrbXNLZXlJZCxcbiAgICAgICAgUG9saWN5OiBKU09OLnN0cmluZ2lmeSh1cGRhdGVkS2V5UG9saWN5KSxcbiAgICAgICAgUG9saWN5TmFtZTogJ2RlZmF1bHQnXG4gICAgICB9KSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzdGF0dXMgPSAnRkFJTEVEJztcbiAgICAgIHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgRXJyb3I6IEpTT04uc3RyaW5naWZ5KGVycilcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBTdGF0dXM6IHN0YXR1cyxcbiAgICBSZWFzb246IEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlRGF0YSksXG4gICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPz8gY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgIFN0YWNrSWQ6IGV2ZW50LlN0YWNrSWQsXG4gICAgUmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgTG9naWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgIERhdGE6IHJlc3BvbnNlRGF0YSxcbiAgfTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyBhIHByb3ZpZGVkIGtleSBwb2xpY3kgd2l0aCBhIHByb3ZpZGVkIGtleSBwb2xpY3kgc3RhdGVtZW50LiBGaXJzdCBjaGVja3Mgd2hldGhlciB0aGUgcHJvdmlkZWQga2V5IHBvbGljeSBzdGF0ZW1lbnRcbiAqIGFscmVhZHkgZXhpc3RzLiBJZiBhbiBleGlzdGluZyBrZXkgcG9saWN5IGlzIGZvdW5kIHdpdGggYSBtYXRjaGluZyBzaWQsIHRoZSBwcm92aWRlZCBrZXkgcG9saWN5IHdpbGwgb3ZlcndyaXRlIHRoZSBleGlzdGluZ1xuICoga2V5IHBvbGljeS4gSWYgbm8gbWF0Y2hpbmcga2V5IHBvbGljeSBpcyBmb3VuZCwgdGhlIHByb3ZpZGVkIGtleSBwb2xpY3kgd2lsbCBiZSBhcHBlbmRlZCBvbnRvIHRoZSBhcnJheSBvZiBwb2xpY3kgc3RhdGVtZW50cy5cbiAqIEBwYXJhbSBrZXlQb2xpY3kgLSB0aGUgSlNPTi5wYXJzZSdkIHJlc3VsdCBvZiB0aGUgb3RoZXJ3aXNlIHN0cmluZ2lmaWVkIGtleSBwb2xpY3kuXG4gKiBAcGFyYW0ga2V5UG9saWN5U3RhdGVtZW50IC0gdGhlIGtleSBwb2xpY3kgc3RhdGVtZW50IHRvIGJlIGFkZGVkIHRvIHRoZSBrZXkgcG9saWN5LlxuICogQHJldHVybnMga2V5UG9saWN5IC0gdGhlIHVwZGF0ZWQga2V5IHBvbGljeS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZUtleVBvbGljeSA9IChrZXlQb2xpY3k6IGFueSwga2V5UG9saWN5U3RhdGVtZW50OiBhbnkpID0+IHtcbiAgLy8gQ2hlY2sgdG8gc2VlIGlmIGEgZHVwbGljYXRlIGtleSBwb2xpY3kgZXhpc3RzIGJ5IG1hdGNoaW5nIG9uIHRoZSBzaWQuIFRoaXMgaXMgdG8gcHJldmVudCBkdXBsaWNhdGUga2V5IHBvbGljaWVzXG4gIC8vIGZyb20gYmVpbmcgYWRkZWQvdXBkYXRlZCBpbiByZXNwb25zZSB0byBhIHN0YWNrIGJlaW5nIHVwZGF0ZWQgb25lIG9yIG1vcmUgdGltZXMgYWZ0ZXIgaW5pdGlhbCBjcmVhdGlvbi5cbiAgY29uc3QgZXhpc3RpbmdLZXlQb2xpY3lJbmRleCA9IGtleVBvbGljeS5TdGF0ZW1lbnQuZmluZEluZGV4KChzdGF0ZW1lbnQ6IGFueSkgPT4gc3RhdGVtZW50LlNpZCA9PT0ga2V5UG9saWN5U3RhdGVtZW50LlNpZCk7XG4gIC8vIElmIGEgbWF0Y2ggaXMgZm91bmQsIG92ZXJ3cml0ZSB0aGUga2V5IHBvbGljeSBzdGF0ZW1lbnQuLi5cbiAgLy8gT3RoZXJ3aXNlLCBwdXNoIHRoZSBuZXcga2V5IHBvbGljeSB0byB0aGUgYXJyYXkgb2Ygc3RhdGVtZW50c1xuICBpZiAoZXhpc3RpbmdLZXlQb2xpY3lJbmRleCA+IC0xKSB7XG4gICAga2V5UG9saWN5LlN0YXRlbWVudFtleGlzdGluZ0tleVBvbGljeUluZGV4XSA9IGtleVBvbGljeVN0YXRlbWVudDtcbiAgfSBlbHNlIHtcbiAgICBrZXlQb2xpY3kuU3RhdGVtZW50LnB1c2goa2V5UG9saWN5U3RhdGVtZW50KTtcbiAgfVxuICAvLyBSZXR1cm4gdGhlIHJlc3VsdFxuICByZXR1cm4ga2V5UG9saWN5O1xufTtcbiJdfQ== \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.ts new file mode 100644 index 000000000..a14c5aa2a --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.ts @@ -0,0 +1,135 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { KMSClient, GetKeyPolicyCommand, DescribeKeyCommand, PutKeyPolicyCommand, KeyManagerType } from "@aws-sdk/client-kms"; + +const kmsClient = new KMSClient(); + +export const handler = async (event: any, context: any) => { + + let status = 'SUCCESS'; + let responseData = {}; + + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + + try { + const kmsKeyId = event.ResourceProperties.KmsKeyId; + const cloudFrontDistributionId = event.ResourceProperties.CloudFrontDistributionId; + const accountId = event.ResourceProperties.AccountId; + const region = process.env.AWS_REGION; + + const describeKeyCommandResponse = await kmsClient.send(new DescribeKeyCommand({ + KeyId: kmsKeyId + })); + + if (describeKeyCommandResponse.KeyMetadata?.KeyManager === KeyManagerType.AWS) { + return { + Status: 'SUCCESS', + Reason: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + }; + } + + // The PolicyName is specified as "default" below because that is the only valid name as + // written in the documentation for @aws-sdk/client-kms.GetKeyPolicyCommandInput: + // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-kms/Interface/GetKeyPolicyCommandInput/ + const getKeyPolicyCommandResponse = await kmsClient.send(new GetKeyPolicyCommand({ + KeyId: kmsKeyId, + PolicyName: 'default' + })); + + if (!getKeyPolicyCommandResponse.Policy) { + return { + Status: 'FAILED', + Reason: 'An error occurred while retrieving the key policy.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An error occurred while retrieving the key policy.', + }; + } + + // Define the updated key policy to allow CloudFront access + const keyPolicy = JSON.parse(getKeyPolicyCommandResponse?.Policy); + const keyPolicyStatement = { + Sid: 'Grant-CloudFront-Distribution-Key-Usage', + Effect: 'Allow', + Principal: { + Service: 'cloudfront.amazonaws.com', + }, + Action: [ + 'kms:Decrypt', + 'kms:Encrypt', + 'kms:GenerateDataKey*', + 'kms:ReEncrypt*' + ], + Resource: `arn:aws:kms:${region}:${accountId}:key/${kmsKeyId}`, + Condition: { + StringEquals: { + 'AWS:SourceArn': `arn:aws:cloudfront::${accountId}:distribution/${cloudFrontDistributionId}` + } + } + }; + const updatedKeyPolicy = updateKeyPolicy(keyPolicy, keyPolicyStatement); + + await kmsClient.send(new PutKeyPolicyCommand({ + KeyId: kmsKeyId, + Policy: JSON.stringify(updatedKeyPolicy), + PolicyName: 'default' + })); + } catch (err) { + status = 'FAILED'; + responseData = { + Error: JSON.stringify(err) + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +/** + * Updates a provided key policy with a provided key policy statement. First checks whether the provided key policy statement + * already exists. If an existing key policy is found with a matching sid, the provided key policy will overwrite the existing + * key policy. If no matching key policy is found, the provided key policy will be appended onto the array of policy statements. + * @param keyPolicy - the JSON.parse'd result of the otherwise stringified key policy. + * @param keyPolicyStatement - the key policy statement to be added to the key policy. + * @returns keyPolicy - the updated key policy. + */ +export const updateKeyPolicy = (keyPolicy: any, keyPolicyStatement: any) => { + // Check to see if a duplicate key policy exists by matching on the sid. This is to prevent duplicate key policies + // from being added/updated in response to a stack being updated one or more times after initial creation. + const existingKeyPolicyIndex = keyPolicy.Statement.findIndex((statement: any) => statement.Sid === keyPolicyStatement.Sid); + // If a match is found, overwrite the key policy statement... + // Otherwise, push the new key policy to the array of statements + if (existingKeyPolicyIndex > -1) { + keyPolicy.Statement[existingKeyPolicyIndex] = keyPolicyStatement; + } else { + keyPolicy.Statement.push(keyPolicyStatement); + } + // Return the result + return keyPolicy; +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.assets.json index 32d985745..9c5ce0644 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "displayName": "cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", @@ -43,16 +43,16 @@ } } }, - "7fca516db65ed38cc4fc93c327f6756fcb6ef9f86bcdd7854163f48b94e412f3": { + "d18c67cb980c0f65d688822090b4c6849c46f50df7e7e743d58e8f286611061b": { "displayName": "cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket Template", "source": { "path": "cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-9be40000": { + "current_account-current_region-858f3e05": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7fca516db65ed38cc4fc93c327f6756fcb6ef9f86bcdd7854163f48b94e412f3.json", + "objectKey": "d18c67cb980c0f65d688822090b4c6849c46f50df7e7e743d58e8f286611061b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.template.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.template.json index e7dc283c2..dc4ccdb02 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.template.json @@ -1047,7 +1047,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3bucketencryptedwithcmkprovidedasexistingbucketIntegDefaultTestDeployAssertF6031114.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3bucketencryptedwithcmkprovidedasexistingbucketIntegDefaultTestDeployAssertF6031114.assets.json index c276e2340..7ef421a87 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3bucketencryptedwithcmkprovidedasexistingbucketIntegDefaultTestDeployAssertF6031114.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3bucketencryptedwithcmkprovidedasexistingbucketIntegDefaultTestDeployAssertF6031114.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "cfts3bucketencryptedwithcmkprovidedasexistingbucketIntegDefaultTestDeployAssertF6031114 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/integ.json index 3fa435421..2bfa718f7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "cfts3bucketencryptedwithcmkprovidedasexistingbucketIntegDefaultTestDeployAssertF6031114" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/manifest.json index 9f7394409..e83add875 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7fca516db65ed38cc4fc93c327f6756fcb6ef9f86bcdd7854163f48b94e412f3.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d18c67cb980c0f65d688822090b4c6849c46f50df7e7e743d58e8f286611061b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -524,7 +524,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -731,57 +731,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -790,7 +781,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -867,7 +861,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1011,7 +1005,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1040,7 +1037,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1104,7 +1104,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1138,7 +1141,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1161,7 +1167,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1191,6 +1200,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/tree.json index e6a383ef5..fd9f44d20 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket":{"id":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"cmkKey":{"id":"cmkKey","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/cmkKey","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.206.0","metadata":[{"enableKeyRotation":true,"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/cmkKey/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"existing-s3-bucket-encrypted-with-cmkS3LoggingBucket":{"id":"existing-s3-bucket-encrypted-with-cmkS3LoggingBucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"existing-s3-bucket-encrypted-with-cmkS3Bucket":{"id":"existing-s3-bucket-encrypted-with-cmkS3Bucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"KMS","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","encryptionKey":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"aws:kms","kmsMasterKeyId":{"Fn::GetAtt":["cmkKey598B20B2","Arn"]}}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existings3bucketencryptedwithcmkS3BucketCC461491"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},"/*"]]}]},{"Action":"s3:GetObject","Condition":{"StringEquals":{"AWS:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cloudfront::",{"Ref":"AWS::AccountId"},":distribution/",{"Ref":"testcloudfronts3cmkencryptionkeyCloudFrontDistribution57C8A907"}]]}}},"Effect":"Allow","Principal":{"Service":"cloudfront.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},"/*"]]}},{"Action":"s3:ListBucket","Condition":{"StringEquals":{"AWS:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cloudfront::",{"Ref":"AWS::AccountId"},":distribution/",{"Ref":"testcloudfronts3cmkencryptionkeyCloudFrontDistribution57C8A907"}]]}}},"Effect":"Allow","Principal":{"Service":"cloudfront.amazonaws.com"},"Resource":{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"test-cloudfront-s3-cmk-encryption-key":{"id":"test-cloudfront-s3-cmk-encryption-key","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3","version":"2.86.0"},"children":{"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudFrontOac":{"id":"CloudFrontOac","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudFrontOac","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnOriginAccessControl","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::OriginAccessControl","aws:cdk:cloudformation:props":{"originAccessControlConfig":{"name":{"Fn::Join":["",["aws-cloudfront-s3-testn-key-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"originAccessControlOriginType":"s3","signingBehavior":"always","signingProtocol":"sigv4","description":"Origin access control provisioned by aws-cloudfront-s3"}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.206.0","metadata":[{"defaultBehavior":{"origin":"*","viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*","defaultRootObject":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","RegionalDomainName"]},"id":"cfts3bucketencryptedwithcmkprovidedasexistingbuckettestcloudfronts3cmkencryptionkeyCloudFrontDistributionOrigin128E2E2A5","s3OriginConfig":{"originAccessIdentity":""}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cfts3bucketencryptedwithcmkprovidedasexistingbuckettestcloudfronts3cmkencryptionkeyCloudFrontDistributionOrigin128E2E2A5","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https"},"defaultRootObject":"index.html","httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","RegionalDomainName"]}}}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","description":"*","timeout":"*","memorySize":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e.zip"},"description":"Custom resource function that updates a provided key policy to allow CloudFront access.","environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyLambdaFunctioninlinePolicyAddedToExecutionRole030BCEDF3","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D"}]}}}}}}},"test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy":{"id":"test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kms:DescribeKey","kms:GetKeyPolicy","kms:PutKeyPolicy"],"Effect":"Allow","Resource":{"Fn::GetAtt":["cmkKey598B20B2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeytestcloudfronts3cmkencryptionkeyResourceCmkPolicyBD4BA975","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D"}]}}}}},"KmsKeyPolicyUpdateProvider":{"id":"KmsKeyPolicyUpdateProvider","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRoleDefaultPolicy066CD751","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD"}]}}}}}}},"Code":{"id":"Code","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]}}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventinlinePolicyAddedToExecutionRole0055AB010","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD"}]}}}}}}}}},"KmsKeyPolicyUpdater":{"id":"KmsKeyPolicyUpdater","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdater","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdater/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"Integ":{"id":"Integ","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket":{"id":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"cmkKey":{"id":"cmkKey","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/cmkKey","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.223.0","metadata":[{"enableKeyRotation":true,"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/cmkKey/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"existing-s3-bucket-encrypted-with-cmkS3LoggingBucket":{"id":"existing-s3-bucket-encrypted-with-cmkS3LoggingBucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"existing-s3-bucket-encrypted-with-cmkS3Bucket":{"id":"existing-s3-bucket-encrypted-with-cmkS3Bucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"KMS","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","encryptionKey":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"aws:kms","kmsMasterKeyId":{"Fn::GetAtt":["cmkKey598B20B2","Arn"]}}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"existings3bucketencryptedwithcmkS3LoggingBucket2B2DE39B"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existings3bucketencryptedwithcmkS3BucketCC461491"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},"/*"]]}]},{"Action":"s3:GetObject","Condition":{"StringEquals":{"AWS:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cloudfront::",{"Ref":"AWS::AccountId"},":distribution/",{"Ref":"testcloudfronts3cmkencryptionkeyCloudFrontDistribution57C8A907"}]]}}},"Effect":"Allow","Principal":{"Service":"cloudfront.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]},"/*"]]}},{"Action":"s3:ListBucket","Condition":{"StringEquals":{"AWS:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cloudfront::",{"Ref":"AWS::AccountId"},":distribution/",{"Ref":"testcloudfronts3cmkencryptionkeyCloudFrontDistribution57C8A907"}]]}}},"Effect":"Allow","Principal":{"Service":"cloudfront.amazonaws.com"},"Resource":{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","Arn"]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/existing-s3-bucket-encrypted-with-cmkS3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"test-cloudfront-s3-cmk-encryption-key":{"id":"test-cloudfront-s3-cmk-encryption-key","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3","version":"2.95.1"},"children":{"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudFrontOac":{"id":"CloudFrontOac","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudFrontOac","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnOriginAccessControl","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::OriginAccessControl","aws:cdk:cloudformation:props":{"originAccessControlConfig":{"name":{"Fn::Join":["",["aws-cloudfront-s3-testn-key-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"originAccessControlOriginType":"s3","signingBehavior":"always","signingProtocol":"sigv4","description":"Origin access control provisioned by aws-cloudfront-s3"}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.223.0","metadata":[{"defaultBehavior":{"origin":"*","viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*","defaultRootObject":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::GetAtt":["existings3bucketencryptedwithcmkS3BucketCC461491","RegionalDomainName"]},"id":"cfts3bucketencryptedwithcmkprovidedasexistingbuckettestcloudfronts3cmkencryptionkeyCloudFrontDistributionOrigin128E2E2A5","s3OriginConfig":{"originAccessIdentity":""}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cfts3bucketencryptedwithcmkprovidedasexistingbuckettestcloudfronts3cmkencryptionkeyCloudFrontDistributionOrigin128E2E2A5","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https"},"defaultRootObject":"index.html","httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","RegionalDomainName"]}}}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","description":"*","timeout":"*","memorySize":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e.zip"},"description":"Custom resource function that updates a provided key policy to allow CloudFront access.","environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyLambdaFunctioninlinePolicyAddedToExecutionRole030BCEDF3","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D"}]}}}}}}},"test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy":{"id":"test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kms:DescribeKey","kms:GetKeyPolicy","kms:PutKeyPolicy"],"Effect":"Allow","Resource":{"Fn::GetAtt":["cmkKey598B20B2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeytestcloudfronts3cmkencryptionkeyResourceCmkPolicyBD4BA975","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D"}]}}}}},"KmsKeyPolicyUpdateProvider":{"id":"KmsKeyPolicyUpdateProvider","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRoleDefaultPolicy066CD751","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD"}]}}}}}}},"Code":{"id":"Code","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]}}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventinlinePolicyAddedToExecutionRole0055AB010","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD"}]}}}}}}}}},"KmsKeyPolicyUpdater":{"id":"KmsKeyPolicyUpdater","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdater","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdater/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Integ":{"id":"Integ","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js new file mode 100644 index 000000000..17c9ea7df --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Retry=exports.includeStackTraces=exports.MISSING_PHYSICAL_ID_MARKER=exports.CREATE_FAILED_PHYSICAL_ID_MARKER=void 0,exports.submitResponse=submitResponse,exports.safeHandler=safeHandler,exports.redactDataFromPayload=redactDataFromPayload;const url=require("url"),outbound_1=require("./outbound"),util_1=require("./util");exports.CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",exports.MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function submitResponse(status,event,options={}){const json={Status:status,Reason:options.reason||status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||exports.MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:options.noEcho,Data:event.Data},responseBody=JSON.stringify(json),parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;options?.noEcho?(0,util_1.log)("submit redacted response to cloudformation",loggingSafeUrl,redactDataFromPayload(json)):(0,util_1.log)("submit response to cloudformation",loggingSafeUrl,json);const retryOptions={attempts:5,sleep:1e3};await(0,util_1.withRetries)(retryOptions,outbound_1.httpRequest)({hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}},responseBody)}exports.includeStackTraces=!0;function safeHandler(block){return async event=>{if(event.RequestType==="Delete"&&event.PhysicalResourceId===exports.CREATE_FAILED_PHYSICAL_ID_MARKER){(0,util_1.log)("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{await block(event)}catch(e){if(e instanceof Retry)throw(0,util_1.log)("retry requested by handler"),e;event.PhysicalResourceId||(event.RequestType==="Create"?((0,util_1.log)("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),event.PhysicalResourceId=exports.CREATE_FAILED_PHYSICAL_ID_MARKER):(0,util_1.log)(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify({...event,ResponseURL:"..."})}`)),await submitResponse("FAILED",event,{reason:exports.includeStackTraces?e.stack:e.message})}}}function redactDataFromPayload(payload){const redactedPayload=JSON.parse(JSON.stringify(payload));if(redactedPayload.Data){const keys=Object.keys(redactedPayload.Data);for(const key of keys)redactedPayload.Data[key]="*****"}return redactedPayload}class Retry extends Error{}exports.Retry=Retry; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js new file mode 100644 index 000000000..5c78d63db --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME=exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME=exports.FRAMEWORK_ON_EVENT_HANDLER_NAME=exports.WAITER_STATE_MACHINE_ARN_ENV=exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV=exports.USER_ON_EVENT_FUNCTION_ARN_ENV=void 0,exports.USER_ON_EVENT_FUNCTION_ARN_ENV="USER_ON_EVENT_FUNCTION_ARN",exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV="USER_IS_COMPLETE_FUNCTION_ARN",exports.WAITER_STATE_MACHINE_ARN_ENV="WAITER_STATE_MACHINE_ARN",exports.FRAMEWORK_ON_EVENT_HANDLER_NAME="onEvent",exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME="isComplete",exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME="onTimeout"; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js new file mode 100644 index 000000000..952048e6f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js @@ -0,0 +1,3 @@ +"use strict";const cfnResponse=require("./cfn-response"),consts=require("./consts"),outbound_1=require("./outbound"),util_1=require("./util");async function onEvent(cfnRequest){const sanitizedRequest={...cfnRequest,ResponseURL:"..."};(0,util_1.log)("onEventHandler",sanitizedRequest),cfnRequest.ResourceProperties=cfnRequest.ResourceProperties||{};const onEventResult=await invokeUserFunction(consts.USER_ON_EVENT_FUNCTION_ARN_ENV,sanitizedRequest,cfnRequest.ResponseURL);onEventResult?.NoEcho?(0,util_1.log)("redacted onEvent returned:",cfnResponse.redactDataFromPayload(onEventResult)):(0,util_1.log)("onEvent returned:",onEventResult);const resourceEvent=createResponseEvent(cfnRequest,onEventResult),sanitizedEvent={...resourceEvent,ResponseURL:"..."};if(onEventResult?.NoEcho?(0,util_1.log)("readacted event:",cfnResponse.redactDataFromPayload(sanitizedEvent)):(0,util_1.log)("event:",sanitizedEvent),!process.env[consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV])return cfnResponse.submitResponse("SUCCESS",resourceEvent,{noEcho:resourceEvent.NoEcho});const waiter={stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId,input:JSON.stringify(resourceEvent)};(0,util_1.log)("starting waiter",{stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId}),await(0,outbound_1.startExecution)(waiter)}async function isComplete(event){const sanitizedRequest={...event,ResponseURL:"..."};event?.NoEcho?(0,util_1.log)("redacted isComplete request",cfnResponse.redactDataFromPayload(sanitizedRequest)):(0,util_1.log)("isComplete",sanitizedRequest);const isCompleteResult=await invokeUserFunction(consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV,sanitizedRequest,event.ResponseURL);if(event?.NoEcho?(0,util_1.log)("redacted user isComplete returned:",cfnResponse.redactDataFromPayload(isCompleteResult)):(0,util_1.log)("user isComplete returned:",isCompleteResult),!isCompleteResult.IsComplete)throw isCompleteResult.Data&&Object.keys(isCompleteResult.Data).length>0?new Error('"Data" is not allowed if "IsComplete" is "False"'):new cfnResponse.Retry(JSON.stringify(event));const response={...event,...isCompleteResult,Data:{...event.Data,...isCompleteResult.Data}};await cfnResponse.submitResponse("SUCCESS",response,{noEcho:event.NoEcho})}async function onTimeout(timeoutEvent){(0,util_1.log)("timeoutHandler",timeoutEvent);const isCompleteRequest=JSON.parse(JSON.parse(timeoutEvent.Cause).errorMessage);await cfnResponse.submitResponse("FAILED",isCompleteRequest,{reason:"Operation timed out"})}async function invokeUserFunction(functionArnEnv,sanitizedPayload,responseUrl){const functionArn=(0,util_1.getEnv)(functionArnEnv);(0,util_1.log)(`executing user function ${functionArn} with payload`,sanitizedPayload);const resp=await(0,outbound_1.invokeFunction)({FunctionName:functionArn,Payload:JSON.stringify({...sanitizedPayload,ResponseURL:responseUrl})});(0,util_1.log)("user function response:",resp,typeof resp);const jsonPayload=(0,util_1.parseJsonPayload)(resp.Payload);if(resp.FunctionError){(0,util_1.log)("user function threw an error:",resp.FunctionError);const errorMessage=jsonPayload.errorMessage||"error",arn=functionArn.split(":"),functionName=arn[arn.length-1],message=[errorMessage,"",`Logs: /aws/lambda/${functionName}`,""].join(` +`),e=new Error(message);throw jsonPayload.trace&&(e.stack=[message,...jsonPayload.trace.slice(1)].join(` +`)),e}return jsonPayload}function createResponseEvent(cfnRequest,onEventResult){onEventResult=onEventResult||{};const physicalResourceId=onEventResult.PhysicalResourceId||defaultPhysicalResourceId(cfnRequest);if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}" during deletion`);return cfnRequest.RequestType==="Update"&&physicalResourceId!==cfnRequest.PhysicalResourceId&&(0,util_1.log)(`UPDATE: changing physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}"`),{...cfnRequest,...onEventResult,PhysicalResourceId:physicalResourceId}}function defaultPhysicalResourceId(req){switch(req.RequestType){case"Create":return req.RequestId;case"Update":case"Delete":return req.PhysicalResourceId;default:throw new Error(`Invalid "RequestType" in request "${JSON.stringify(req)}"`)}}module.exports={[consts.FRAMEWORK_ON_EVENT_HANDLER_NAME]:cfnResponse.safeHandler(onEvent),[consts.FRAMEWORK_IS_COMPLETE_HANDLER_NAME]:cfnResponse.safeHandler(isComplete),[consts.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME]:onTimeout}; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js new file mode 100644 index 000000000..3c900428d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.httpRequest=exports.invokeFunction=exports.startExecution=void 0;const https=require("https"),client_lambda_1=require("@aws-sdk/client-lambda"),client_sfn_1=require("@aws-sdk/client-sfn"),FRAMEWORK_HANDLER_TIMEOUT=9e5,awsSdkConfig={httpOptions:{timeout:FRAMEWORK_HANDLER_TIMEOUT}};async function defaultHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}let sfn,lambda;async function defaultStartExecution(req){return sfn||(sfn=new client_sfn_1.SFN(awsSdkConfig)),sfn.startExecution(req)}async function defaultInvokeFunction(req){lambda||(lambda=new client_lambda_1.Lambda(awsSdkConfig));try{return await lambda.invoke(req)}catch{return await(0,client_lambda_1.waitUntilFunctionActiveV2)({client:lambda,maxWaitTime:300},{FunctionName:req.FunctionName}),lambda.invoke(req)}}exports.startExecution=defaultStartExecution,exports.invokeFunction=defaultInvokeFunction,exports.httpRequest=defaultHttpRequest; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js new file mode 100644 index 000000000..47b472b09 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getEnv=getEnv,exports.log=log,exports.withRetries=withRetries,exports.parseJsonPayload=parseJsonPayload;function getEnv(name){const value=process.env[name];if(!value)throw new Error(`The environment variable "${name}" is not defined`);return value}function log(title,...args){console.log("[provider-framework]",title,...args.map(x=>typeof x=="object"?JSON.stringify(x,void 0,2):x))}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}function parseJsonPayload(payload){const text=new TextDecoder().decode(Buffer.from(payload??""));if(!text)return{};try{return JSON.parse(text)}catch{throw new Error(`return values from user-handlers must be JSON objects. got: "${text}"`)}} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.js new file mode 100644 index 000000000..9f31f8dbc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.js @@ -0,0 +1,129 @@ +"use strict"; +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.updateKeyPolicy = exports.handler = void 0; +const client_kms_1 = require("@aws-sdk/client-kms"); +const kmsClient = new client_kms_1.KMSClient(); +const handler = async (event, context) => { + let status = 'SUCCESS'; + let responseData = {}; + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const kmsKeyId = event.ResourceProperties.KmsKeyId; + const cloudFrontDistributionId = event.ResourceProperties.CloudFrontDistributionId; + const accountId = event.ResourceProperties.AccountId; + const region = process.env.AWS_REGION; + const describeKeyCommandResponse = await kmsClient.send(new client_kms_1.DescribeKeyCommand({ + KeyId: kmsKeyId + })); + if (describeKeyCommandResponse.KeyMetadata?.KeyManager === client_kms_1.KeyManagerType.AWS) { + return { + Status: 'SUCCESS', + Reason: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + }; + } + // The PolicyName is specified as "default" below because that is the only valid name as + // written in the documentation for @aws-sdk/client-kms.GetKeyPolicyCommandInput: + // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-kms/Interface/GetKeyPolicyCommandInput/ + const getKeyPolicyCommandResponse = await kmsClient.send(new client_kms_1.GetKeyPolicyCommand({ + KeyId: kmsKeyId, + PolicyName: 'default' + })); + if (!getKeyPolicyCommandResponse.Policy) { + return { + Status: 'FAILED', + Reason: 'An error occurred while retrieving the key policy.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An error occurred while retrieving the key policy.', + }; + } + // Define the updated key policy to allow CloudFront access + const keyPolicy = JSON.parse(getKeyPolicyCommandResponse?.Policy); + const keyPolicyStatement = { + Sid: 'Grant-CloudFront-Distribution-Key-Usage', + Effect: 'Allow', + Principal: { + Service: 'cloudfront.amazonaws.com', + }, + Action: [ + 'kms:Decrypt', + 'kms:Encrypt', + 'kms:GenerateDataKey*', + 'kms:ReEncrypt*' + ], + Resource: `arn:aws:kms:${region}:${accountId}:key/${kmsKeyId}`, + Condition: { + StringEquals: { + 'AWS:SourceArn': `arn:aws:cloudfront::${accountId}:distribution/${cloudFrontDistributionId}` + } + } + }; + const updatedKeyPolicy = (0, exports.updateKeyPolicy)(keyPolicy, keyPolicyStatement); + await kmsClient.send(new client_kms_1.PutKeyPolicyCommand({ + KeyId: kmsKeyId, + Policy: JSON.stringify(updatedKeyPolicy), + PolicyName: 'default' + })); + } + catch (err) { + status = 'FAILED'; + responseData = { + Error: JSON.stringify(err) + }; + } + } + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; +exports.handler = handler; +/** + * Updates a provided key policy with a provided key policy statement. First checks whether the provided key policy statement + * already exists. If an existing key policy is found with a matching sid, the provided key policy will overwrite the existing + * key policy. If no matching key policy is found, the provided key policy will be appended onto the array of policy statements. + * @param keyPolicy - the JSON.parse'd result of the otherwise stringified key policy. + * @param keyPolicyStatement - the key policy statement to be added to the key policy. + * @returns keyPolicy - the updated key policy. + */ +const updateKeyPolicy = (keyPolicy, keyPolicyStatement) => { + // Check to see if a duplicate key policy exists by matching on the sid. This is to prevent duplicate key policies + // from being added/updated in response to a stack being updated one or more times after initial creation. + const existingKeyPolicyIndex = keyPolicy.Statement.findIndex((statement) => statement.Sid === keyPolicyStatement.Sid); + // If a match is found, overwrite the key policy statement... + // Otherwise, push the new key policy to the array of statements + if (existingKeyPolicyIndex > -1) { + keyPolicy.Statement[existingKeyPolicyIndex] = keyPolicyStatement; + } + else { + keyPolicy.Statement.push(keyPolicyStatement); + } + // Return the result + return keyPolicy; +}; +exports.updateKeyPolicy = updateKeyPolicy; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVILG9EQUE4SDtBQUU5SCxNQUFNLFNBQVMsR0FBRyxJQUFJLHNCQUFTLEVBQUUsQ0FBQztBQUUzQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBVSxFQUFFLE9BQVksRUFBRSxFQUFFO0lBRXhELElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN2QixJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7SUFFdEIsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBRXJFLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7WUFDbkQsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQUM7WUFDbkYsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztZQUNyRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUV0QyxNQUFNLDBCQUEwQixHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLCtCQUFrQixDQUFDO2dCQUM3RSxLQUFLLEVBQUUsUUFBUTthQUNoQixDQUFDLENBQUMsQ0FBQztZQUVKLElBQUksMEJBQTBCLENBQUMsV0FBVyxFQUFFLFVBQVUsS0FBSywyQkFBYyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM5RSxPQUFPO29CQUNMLE1BQU0sRUFBRSxTQUFTO29CQUNqQixNQUFNLEVBQUUsMEZBQTBGO29CQUNsRyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLGFBQWE7b0JBQ3JFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztvQkFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO29CQUMxQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO29CQUMxQyxJQUFJLEVBQUUsMEZBQTBGO2lCQUNqRyxDQUFDO1lBQ0osQ0FBQztZQUVELHdGQUF3RjtZQUN4RixpRkFBaUY7WUFDakYseUhBQXlIO1lBQ3pILE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksZ0NBQW1CLENBQUM7Z0JBQy9FLEtBQUssRUFBRSxRQUFRO2dCQUNmLFVBQVUsRUFBRSxTQUFTO2FBQ3RCLENBQUMsQ0FBQyxDQUFDO1lBRUosSUFBSSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN4QyxPQUFPO29CQUNMLE1BQU0sRUFBRSxRQUFRO29CQUNoQixNQUFNLEVBQUUsb0RBQW9EO29CQUM1RCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLGFBQWE7b0JBQ3JFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztvQkFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO29CQUMxQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO29CQUMxQyxJQUFJLEVBQUUsb0RBQW9EO2lCQUMzRCxDQUFDO1lBQ0osQ0FBQztZQUVELDJEQUEyRDtZQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sa0JBQWtCLEdBQUc7Z0JBQ3pCLEdBQUcsRUFBRSx5Q0FBeUM7Z0JBQzlDLE1BQU0sRUFBRSxPQUFPO2dCQUNmLFNBQVMsRUFBRTtvQkFDVCxPQUFPLEVBQUUsMEJBQTBCO2lCQUNwQztnQkFDRCxNQUFNLEVBQUU7b0JBQ04sYUFBYTtvQkFDYixhQUFhO29CQUNiLHNCQUFzQjtvQkFDdEIsZ0JBQWdCO2lCQUNqQjtnQkFDRCxRQUFRLEVBQUUsZUFBZSxNQUFNLElBQUksU0FBUyxRQUFRLFFBQVEsRUFBRTtnQkFDOUQsU0FBUyxFQUFFO29CQUNULFlBQVksRUFBRTt3QkFDWixlQUFlLEVBQUUsdUJBQXVCLFNBQVMsaUJBQWlCLHdCQUF3QixFQUFFO3FCQUM3RjtpQkFDRjthQUNGLENBQUM7WUFDRixNQUFNLGdCQUFnQixHQUFHLElBQUEsdUJBQWUsRUFBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUV4RSxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxnQ0FBbUIsQ0FBQztnQkFDM0MsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hDLFVBQVUsRUFBRSxTQUFTO2FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixNQUFNLEdBQUcsUUFBUSxDQUFDO1lBQ2xCLFlBQVksR0FBRztnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7YUFDM0IsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3BDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsYUFBYTtRQUNyRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7UUFDMUMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTlGVyxRQUFBLE9BQU8sV0E4RmxCO0FBRUY7Ozs7Ozs7R0FPRztBQUNJLE1BQU0sZUFBZSxHQUFHLENBQUMsU0FBYyxFQUFFLGtCQUF1QixFQUFFLEVBQUU7SUFDekUsa0hBQWtIO0lBQ2xILDBHQUEwRztJQUMxRyxNQUFNLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNILDZEQUE2RDtJQUM3RCxnRUFBZ0U7SUFDaEUsSUFBSSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hDLFNBQVMsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztJQUNuRSxDQUFDO1NBQU0sQ0FBQztRQUNOLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELG9CQUFvQjtJQUNwQixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFiVyxRQUFBLGVBQWUsbUJBYTFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgS01TQ2xpZW50LCBHZXRLZXlQb2xpY3lDb21tYW5kLCBEZXNjcmliZUtleUNvbW1hbmQsIFB1dEtleVBvbGljeUNvbW1hbmQsIEtleU1hbmFnZXJUeXBlIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1rbXNcIjtcblxuY29uc3Qga21zQ2xpZW50ID0gbmV3IEtNU0NsaWVudCgpO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9IGFzeW5jIChldmVudDogYW55LCBjb250ZXh0OiBhbnkpID0+IHtcblxuICBsZXQgc3RhdHVzID0gJ1NVQ0NFU1MnO1xuICBsZXQgcmVzcG9uc2VEYXRhID0ge307XG5cbiAgaWYgKGV2ZW50LlJlcXVlc3RUeXBlID09PSAnQ3JlYXRlJyB8fCBldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ1VwZGF0ZScpIHtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBrbXNLZXlJZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5LbXNLZXlJZDtcbiAgICAgIGNvbnN0IGNsb3VkRnJvbnREaXN0cmlidXRpb25JZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5DbG91ZEZyb250RGlzdHJpYnV0aW9uSWQ7XG4gICAgICBjb25zdCBhY2NvdW50SWQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuQWNjb3VudElkO1xuICAgICAgY29uc3QgcmVnaW9uID0gcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTjtcblxuICAgICAgY29uc3QgZGVzY3JpYmVLZXlDb21tYW5kUmVzcG9uc2UgPSBhd2FpdCBrbXNDbGllbnQuc2VuZChuZXcgRGVzY3JpYmVLZXlDb21tYW5kKHtcbiAgICAgICAgS2V5SWQ6IGttc0tleUlkXG4gICAgICB9KSk7XG5cbiAgICAgIGlmIChkZXNjcmliZUtleUNvbW1hbmRSZXNwb25zZS5LZXlNZXRhZGF0YT8uS2V5TWFuYWdlciA9PT0gS2V5TWFuYWdlclR5cGUuQVdTKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgU3RhdHVzOiAnU1VDQ0VTUycsXG4gICAgICAgICAgUmVhc29uOiAnQW4gQVdTIG1hbmFnZWQga2V5IHdhcyBwcm92aWRlZCwgbm8gYWN0aW9uIG5lZWRlZCBmcm9tIHRoZSBjdXN0b20gcmVzb3VyY2UsIGV4aXRpbmcgbm93LicsXG4gICAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPz8gY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgICAgICAgIFN0YWNrSWQ6IGV2ZW50LlN0YWNrSWQsXG4gICAgICAgICAgUmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgICAgICAgTG9naWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgICAgIERhdGE6ICdBbiBBV1MgbWFuYWdlZCBrZXkgd2FzIHByb3ZpZGVkLCBubyBhY3Rpb24gbmVlZGVkIGZyb20gdGhlIGN1c3RvbSByZXNvdXJjZSwgZXhpdGluZyBub3cuJyxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIFBvbGljeU5hbWUgaXMgc3BlY2lmaWVkIGFzIFwiZGVmYXVsdFwiIGJlbG93IGJlY2F1c2UgdGhhdCBpcyB0aGUgb25seSB2YWxpZCBuYW1lIGFzXG4gICAgICAvLyB3cml0dGVuIGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciBAYXdzLXNkay9jbGllbnQta21zLkdldEtleVBvbGljeUNvbW1hbmRJbnB1dDpcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL3YzL2xhdGVzdC9QYWNrYWdlLy1hd3Mtc2RrLWNsaWVudC1rbXMvSW50ZXJmYWNlL0dldEtleVBvbGljeUNvbW1hbmRJbnB1dC9cbiAgICAgIGNvbnN0IGdldEtleVBvbGljeUNvbW1hbmRSZXNwb25zZSA9IGF3YWl0IGttc0NsaWVudC5zZW5kKG5ldyBHZXRLZXlQb2xpY3lDb21tYW5kKHtcbiAgICAgICAgS2V5SWQ6IGttc0tleUlkLFxuICAgICAgICBQb2xpY3lOYW1lOiAnZGVmYXVsdCdcbiAgICAgIH0pKTtcblxuICAgICAgaWYgKCFnZXRLZXlQb2xpY3lDb21tYW5kUmVzcG9uc2UuUG9saWN5KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgU3RhdHVzOiAnRkFJTEVEJyxcbiAgICAgICAgICBSZWFzb246ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZXRyaWV2aW5nIHRoZSBrZXkgcG9saWN5LicsXG4gICAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPz8gY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgICAgICAgIFN0YWNrSWQ6IGV2ZW50LlN0YWNrSWQsXG4gICAgICAgICAgUmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgICAgICAgTG9naWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgICAgIERhdGE6ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZXRyaWV2aW5nIHRoZSBrZXkgcG9saWN5LicsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIERlZmluZSB0aGUgdXBkYXRlZCBrZXkgcG9saWN5IHRvIGFsbG93IENsb3VkRnJvbnQgYWNjZXNzXG4gICAgICBjb25zdCBrZXlQb2xpY3kgPSBKU09OLnBhcnNlKGdldEtleVBvbGljeUNvbW1hbmRSZXNwb25zZT8uUG9saWN5KTtcbiAgICAgIGNvbnN0IGtleVBvbGljeVN0YXRlbWVudCA9IHtcbiAgICAgICAgU2lkOiAnR3JhbnQtQ2xvdWRGcm9udC1EaXN0cmlidXRpb24tS2V5LVVzYWdlJyxcbiAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICBQcmluY2lwYWw6IHtcbiAgICAgICAgICBTZXJ2aWNlOiAnY2xvdWRmcm9udC5hbWF6b25hd3MuY29tJyxcbiAgICAgICAgfSxcbiAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgICAgICAna21zOkVuY3J5cHQnLFxuICAgICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5KicsXG4gICAgICAgICAgJ2ttczpSZUVuY3J5cHQqJ1xuICAgICAgICBdLFxuICAgICAgICBSZXNvdXJjZTogYGFybjphd3M6a21zOiR7cmVnaW9ufToke2FjY291bnRJZH06a2V5LyR7a21zS2V5SWR9YCxcbiAgICAgICAgQ29uZGl0aW9uOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnQVdTOlNvdXJjZUFybic6IGBhcm46YXdzOmNsb3VkZnJvbnQ6OiR7YWNjb3VudElkfTpkaXN0cmlidXRpb24vJHtjbG91ZEZyb250RGlzdHJpYnV0aW9uSWR9YFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRLZXlQb2xpY3kgPSB1cGRhdGVLZXlQb2xpY3koa2V5UG9saWN5LCBrZXlQb2xpY3lTdGF0ZW1lbnQpO1xuXG4gICAgICBhd2FpdCBrbXNDbGllbnQuc2VuZChuZXcgUHV0S2V5UG9saWN5Q29tbWFuZCh7XG4gICAgICAgIEtleUlkOiBrbXNLZXlJZCxcbiAgICAgICAgUG9saWN5OiBKU09OLnN0cmluZ2lmeSh1cGRhdGVkS2V5UG9saWN5KSxcbiAgICAgICAgUG9saWN5TmFtZTogJ2RlZmF1bHQnXG4gICAgICB9KSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzdGF0dXMgPSAnRkFJTEVEJztcbiAgICAgIHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgRXJyb3I6IEpTT04uc3RyaW5naWZ5KGVycilcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBTdGF0dXM6IHN0YXR1cyxcbiAgICBSZWFzb246IEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlRGF0YSksXG4gICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPz8gY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgIFN0YWNrSWQ6IGV2ZW50LlN0YWNrSWQsXG4gICAgUmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgTG9naWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgIERhdGE6IHJlc3BvbnNlRGF0YSxcbiAgfTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyBhIHByb3ZpZGVkIGtleSBwb2xpY3kgd2l0aCBhIHByb3ZpZGVkIGtleSBwb2xpY3kgc3RhdGVtZW50LiBGaXJzdCBjaGVja3Mgd2hldGhlciB0aGUgcHJvdmlkZWQga2V5IHBvbGljeSBzdGF0ZW1lbnRcbiAqIGFscmVhZHkgZXhpc3RzLiBJZiBhbiBleGlzdGluZyBrZXkgcG9saWN5IGlzIGZvdW5kIHdpdGggYSBtYXRjaGluZyBzaWQsIHRoZSBwcm92aWRlZCBrZXkgcG9saWN5IHdpbGwgb3ZlcndyaXRlIHRoZSBleGlzdGluZ1xuICoga2V5IHBvbGljeS4gSWYgbm8gbWF0Y2hpbmcga2V5IHBvbGljeSBpcyBmb3VuZCwgdGhlIHByb3ZpZGVkIGtleSBwb2xpY3kgd2lsbCBiZSBhcHBlbmRlZCBvbnRvIHRoZSBhcnJheSBvZiBwb2xpY3kgc3RhdGVtZW50cy5cbiAqIEBwYXJhbSBrZXlQb2xpY3kgLSB0aGUgSlNPTi5wYXJzZSdkIHJlc3VsdCBvZiB0aGUgb3RoZXJ3aXNlIHN0cmluZ2lmaWVkIGtleSBwb2xpY3kuXG4gKiBAcGFyYW0ga2V5UG9saWN5U3RhdGVtZW50IC0gdGhlIGtleSBwb2xpY3kgc3RhdGVtZW50IHRvIGJlIGFkZGVkIHRvIHRoZSBrZXkgcG9saWN5LlxuICogQHJldHVybnMga2V5UG9saWN5IC0gdGhlIHVwZGF0ZWQga2V5IHBvbGljeS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZUtleVBvbGljeSA9IChrZXlQb2xpY3k6IGFueSwga2V5UG9saWN5U3RhdGVtZW50OiBhbnkpID0+IHtcbiAgLy8gQ2hlY2sgdG8gc2VlIGlmIGEgZHVwbGljYXRlIGtleSBwb2xpY3kgZXhpc3RzIGJ5IG1hdGNoaW5nIG9uIHRoZSBzaWQuIFRoaXMgaXMgdG8gcHJldmVudCBkdXBsaWNhdGUga2V5IHBvbGljaWVzXG4gIC8vIGZyb20gYmVpbmcgYWRkZWQvdXBkYXRlZCBpbiByZXNwb25zZSB0byBhIHN0YWNrIGJlaW5nIHVwZGF0ZWQgb25lIG9yIG1vcmUgdGltZXMgYWZ0ZXIgaW5pdGlhbCBjcmVhdGlvbi5cbiAgY29uc3QgZXhpc3RpbmdLZXlQb2xpY3lJbmRleCA9IGtleVBvbGljeS5TdGF0ZW1lbnQuZmluZEluZGV4KChzdGF0ZW1lbnQ6IGFueSkgPT4gc3RhdGVtZW50LlNpZCA9PT0ga2V5UG9saWN5U3RhdGVtZW50LlNpZCk7XG4gIC8vIElmIGEgbWF0Y2ggaXMgZm91bmQsIG92ZXJ3cml0ZSB0aGUga2V5IHBvbGljeSBzdGF0ZW1lbnQuLi5cbiAgLy8gT3RoZXJ3aXNlLCBwdXNoIHRoZSBuZXcga2V5IHBvbGljeSB0byB0aGUgYXJyYXkgb2Ygc3RhdGVtZW50c1xuICBpZiAoZXhpc3RpbmdLZXlQb2xpY3lJbmRleCA+IC0xKSB7XG4gICAga2V5UG9saWN5LlN0YXRlbWVudFtleGlzdGluZ0tleVBvbGljeUluZGV4XSA9IGtleVBvbGljeVN0YXRlbWVudDtcbiAgfSBlbHNlIHtcbiAgICBrZXlQb2xpY3kuU3RhdGVtZW50LnB1c2goa2V5UG9saWN5U3RhdGVtZW50KTtcbiAgfVxuICAvLyBSZXR1cm4gdGhlIHJlc3VsdFxuICByZXR1cm4ga2V5UG9saWN5O1xufTtcbiJdfQ== \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.ts new file mode 100644 index 000000000..a14c5aa2a --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.ts @@ -0,0 +1,135 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { KMSClient, GetKeyPolicyCommand, DescribeKeyCommand, PutKeyPolicyCommand, KeyManagerType } from "@aws-sdk/client-kms"; + +const kmsClient = new KMSClient(); + +export const handler = async (event: any, context: any) => { + + let status = 'SUCCESS'; + let responseData = {}; + + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + + try { + const kmsKeyId = event.ResourceProperties.KmsKeyId; + const cloudFrontDistributionId = event.ResourceProperties.CloudFrontDistributionId; + const accountId = event.ResourceProperties.AccountId; + const region = process.env.AWS_REGION; + + const describeKeyCommandResponse = await kmsClient.send(new DescribeKeyCommand({ + KeyId: kmsKeyId + })); + + if (describeKeyCommandResponse.KeyMetadata?.KeyManager === KeyManagerType.AWS) { + return { + Status: 'SUCCESS', + Reason: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + }; + } + + // The PolicyName is specified as "default" below because that is the only valid name as + // written in the documentation for @aws-sdk/client-kms.GetKeyPolicyCommandInput: + // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-kms/Interface/GetKeyPolicyCommandInput/ + const getKeyPolicyCommandResponse = await kmsClient.send(new GetKeyPolicyCommand({ + KeyId: kmsKeyId, + PolicyName: 'default' + })); + + if (!getKeyPolicyCommandResponse.Policy) { + return { + Status: 'FAILED', + Reason: 'An error occurred while retrieving the key policy.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An error occurred while retrieving the key policy.', + }; + } + + // Define the updated key policy to allow CloudFront access + const keyPolicy = JSON.parse(getKeyPolicyCommandResponse?.Policy); + const keyPolicyStatement = { + Sid: 'Grant-CloudFront-Distribution-Key-Usage', + Effect: 'Allow', + Principal: { + Service: 'cloudfront.amazonaws.com', + }, + Action: [ + 'kms:Decrypt', + 'kms:Encrypt', + 'kms:GenerateDataKey*', + 'kms:ReEncrypt*' + ], + Resource: `arn:aws:kms:${region}:${accountId}:key/${kmsKeyId}`, + Condition: { + StringEquals: { + 'AWS:SourceArn': `arn:aws:cloudfront::${accountId}:distribution/${cloudFrontDistributionId}` + } + } + }; + const updatedKeyPolicy = updateKeyPolicy(keyPolicy, keyPolicyStatement); + + await kmsClient.send(new PutKeyPolicyCommand({ + KeyId: kmsKeyId, + Policy: JSON.stringify(updatedKeyPolicy), + PolicyName: 'default' + })); + } catch (err) { + status = 'FAILED'; + responseData = { + Error: JSON.stringify(err) + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +/** + * Updates a provided key policy with a provided key policy statement. First checks whether the provided key policy statement + * already exists. If an existing key policy is found with a matching sid, the provided key policy will overwrite the existing + * key policy. If no matching key policy is found, the provided key policy will be appended onto the array of policy statements. + * @param keyPolicy - the JSON.parse'd result of the otherwise stringified key policy. + * @param keyPolicyStatement - the key policy statement to be added to the key policy. + * @returns keyPolicy - the updated key policy. + */ +export const updateKeyPolicy = (keyPolicy: any, keyPolicyStatement: any) => { + // Check to see if a duplicate key policy exists by matching on the sid. This is to prevent duplicate key policies + // from being added/updated in response to a stack being updated one or more times after initial creation. + const existingKeyPolicyIndex = keyPolicy.Statement.findIndex((statement: any) => statement.Sid === keyPolicyStatement.Sid); + // If a match is found, overwrite the key policy statement... + // Otherwise, push the new key policy to the array of statements + if (existingKeyPolicyIndex > -1) { + keyPolicy.Statement[existingKeyPolicyIndex] = keyPolicyStatement; + } else { + keyPolicy.Statement.push(keyPolicyStatement); + } + // Return the result + return keyPolicy; +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.assets.json index 3cbe4de86..5264dcf58 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "displayName": "cfts3-cmk-provided-as-bucket-prop/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", @@ -43,16 +43,16 @@ } } }, - "f27e0532dd14530e70eee4317923b5e3c922ce092c887925e8c948dfea7ee2dc": { + "05ef190ff73a6e9ee2ec74f732704f72bbdf8bf89af6191f026a609eb11efebe": { "displayName": "cfts3-cmk-provided-as-bucket-prop Template", "source": { "path": "cfts3-cmk-provided-as-bucket-prop.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-07884401": { + "current_account-current_region-505daeff": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f27e0532dd14530e70eee4317923b5e3c922ce092c887925e8c948dfea7ee2dc.json", + "objectKey": "05ef190ff73a6e9ee2ec74f732704f72bbdf8bf89af6191f026a609eb11efebe.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.template.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.template.json index 12e7cfaf3..08b7422ef 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.template.json @@ -907,7 +907,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3cmkprovidedasbucketpropIntegDefaultTestDeployAssert38E63D55.assets.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3cmkprovidedasbucketpropIntegDefaultTestDeployAssert38E63D55.assets.json index f16c8b1e4..141cbe58a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3cmkprovidedasbucketpropIntegDefaultTestDeployAssert38E63D55.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3cmkprovidedasbucketpropIntegDefaultTestDeployAssert38E63D55.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "cfts3cmkprovidedasbucketpropIntegDefaultTestDeployAssert38E63D55 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/integ.json index 22eb9fb3e..237416256 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "cfts3cmkprovidedasbucketpropIntegDefaultTestDeployAssert38E63D55" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/manifest.json index 7df4ba138..37a60f125 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f27e0532dd14530e70eee4317923b5e3c922ce092c887925e8c948dfea7ee2dc.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/05ef190ff73a6e9ee2ec74f732704f72bbdf8bf89af6191f026a609eb11efebe.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -493,7 +493,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -718,57 +718,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -777,7 +768,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -854,7 +848,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -998,7 +992,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1027,7 +1024,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1091,7 +1091,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1125,7 +1128,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1148,7 +1154,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1178,6 +1187,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/tree.json index 17feace00..a512b89fe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"cfts3-cmk-provided-as-bucket-prop":{"id":"cfts3-cmk-provided-as-bucket-prop","path":"cfts3-cmk-provided-as-bucket-prop","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"cmkKey":{"id":"cmkKey","path":"cfts3-cmk-provided-as-bucket-prop/cmkKey","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.206.0","metadata":[{"enableKeyRotation":true,"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/cmkKey/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"test-cloudfront-s3-cmk-encryption-key":{"id":"test-cloudfront-s3-cmk-encryption-key","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3","version":"2.86.0"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"KMS","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","encryptionKey":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"aws:kms","kmsMasterKeyId":{"Fn::GetAtt":["cmkKey598B20B2","Arn"]}}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]},"/*"]]}]},{"Action":"s3:GetObject","Condition":{"StringEquals":{"AWS:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cloudfront::",{"Ref":"AWS::AccountId"},":distribution/",{"Ref":"testcloudfronts3cmkencryptionkeyCloudFrontDistribution57C8A907"}]]}}},"Effect":"Allow","Principal":{"Service":"cloudfront.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]},"/*"]]}},{"Action":"s3:ListBucket","Condition":{"StringEquals":{"AWS:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cloudfront::",{"Ref":"AWS::AccountId"},":distribution/",{"Ref":"testcloudfronts3cmkencryptionkeyCloudFrontDistribution57C8A907"}]]}}},"Effect":"Allow","Principal":{"Service":"cloudfront.amazonaws.com"},"Resource":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"CloudFrontOac":{"id":"CloudFrontOac","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudFrontOac","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnOriginAccessControl","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::OriginAccessControl","aws:cdk:cloudformation:props":{"originAccessControlConfig":{"name":{"Fn::Join":["",["aws-cloudfront-s3-testn-key-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"originAccessControlOriginType":"s3","signingBehavior":"always","signingProtocol":"sigv4","description":"Origin access control provisioned by aws-cloudfront-s3"}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.206.0","metadata":[{"defaultBehavior":{"origin":"*","viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*","defaultRootObject":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","RegionalDomainName"]},"id":"cfts3cmkprovidedasbucketproptestcloudfronts3cmkencryptionkeyCloudFrontDistributionOrigin1FA4541E3","s3OriginConfig":{"originAccessIdentity":""}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cfts3cmkprovidedasbucketproptestcloudfronts3cmkencryptionkeyCloudFrontDistributionOrigin1FA4541E3","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https"},"defaultRootObject":"index.html","httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","RegionalDomainName"]}}}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","description":"*","timeout":"*","memorySize":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e.zip"},"description":"Custom resource function that updates a provided key policy to allow CloudFront access.","environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyLambdaFunctioninlinePolicyAddedToExecutionRole030BCEDF3","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D"}]}}}}}}},"test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy":{"id":"test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kms:DescribeKey","kms:GetKeyPolicy","kms:PutKeyPolicy"],"Effect":"Allow","Resource":{"Fn::GetAtt":["cmkKey598B20B2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeytestcloudfronts3cmkencryptionkeyResourceCmkPolicyBD4BA975","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D"}]}}}}},"KmsKeyPolicyUpdateProvider":{"id":"KmsKeyPolicyUpdateProvider","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRoleDefaultPolicy066CD751","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD"}]}}}}}}},"Code":{"id":"Code","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]}}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventinlinePolicyAddedToExecutionRole0055AB010","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD"}]}}}}}}}}},"KmsKeyPolicyUpdater":{"id":"KmsKeyPolicyUpdater","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdater","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdater/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cfts3-cmk-provided-as-bucket-prop/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"cfts3-cmk-provided-as-bucket-prop/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"cfts3-cmk-provided-as-bucket-prop/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"cfts3-cmk-provided-as-bucket-prop/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"cfts3-cmk-provided-as-bucket-prop/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cfts3-cmk-provided-as-bucket-prop/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cfts3-cmk-provided-as-bucket-prop/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"cfts3-cmk-provided-as-bucket-prop":{"id":"cfts3-cmk-provided-as-bucket-prop","path":"cfts3-cmk-provided-as-bucket-prop","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"cmkKey":{"id":"cmkKey","path":"cfts3-cmk-provided-as-bucket-prop/cmkKey","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.223.0","metadata":[{"enableKeyRotation":true,"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/cmkKey/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"test-cloudfront-s3-cmk-encryption-key":{"id":"test-cloudfront-s3-cmk-encryption-key","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3","version":"2.95.1"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"KMS","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","encryptionKey":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"aws:kms","kmsMasterKeyId":{"Fn::GetAtt":["cmkKey598B20B2","Arn"]}}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfronts3cmkencryptionkeyS3LoggingBucket5CE52209"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]},"/*"]]}]},{"Action":"s3:GetObject","Condition":{"StringEquals":{"AWS:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cloudfront::",{"Ref":"AWS::AccountId"},":distribution/",{"Ref":"testcloudfronts3cmkencryptionkeyCloudFrontDistribution57C8A907"}]]}}},"Effect":"Allow","Principal":{"Service":"cloudfront.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]},"/*"]]}},{"Action":"s3:ListBucket","Condition":{"StringEquals":{"AWS:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cloudfront::",{"Ref":"AWS::AccountId"},":distribution/",{"Ref":"testcloudfronts3cmkencryptionkeyCloudFrontDistribution57C8A907"}]]}}},"Effect":"Allow","Principal":{"Service":"cloudfront.amazonaws.com"},"Resource":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","Arn"]}}],"Version":"2012-10-17"}}}}}}}},"CloudfrontLoggingBucketAccessLog":{"id":"CloudfrontLoggingBucketAccessLog","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudfrontLoggingBucket":{"id":"CloudfrontLoggingBucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"objectOwnership":"ObjectWriter","serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucketAccessLog8863921C"}},"ownershipControls":{"rules":[{"objectOwnership":"ObjectWriter"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"CloudFrontOac":{"id":"CloudFrontOac","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudFrontOac","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnOriginAccessControl","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::OriginAccessControl","aws:cdk:cloudformation:props":{"originAccessControlConfig":{"name":{"Fn::Join":["",["aws-cloudfront-s3-testn-key-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"originAccessControlOriginType":"s3","signingBehavior":"always","signingProtocol":"sigv4","description":"Origin access control provisioned by aws-cloudfront-s3"}}}},"CloudFrontDistribution":{"id":"CloudFrontDistribution","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.223.0","metadata":[{"defaultBehavior":{"origin":"*","viewerProtocolPolicy":"redirect-to-https"},"enableLogging":true,"logBucket":"*","defaultRootObject":"*"}]},"children":{"Origin1":{"id":"Origin1","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/CloudFrontDistribution/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyS3Bucket0E74E5D2","RegionalDomainName"]},"id":"cfts3cmkprovidedasbucketproptestcloudfronts3cmkencryptionkeyCloudFrontDistributionOrigin1FA4541E3","s3OriginConfig":{"originAccessIdentity":""}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"cfts3cmkprovidedasbucketproptestcloudfronts3cmkencryptionkeyCloudFrontDistributionOrigin1FA4541E3","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"redirect-to-https"},"defaultRootObject":"index.html","httpVersion":"http2","ipv6Enabled":true,"logging":{"bucket":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyCloudfrontLoggingBucket7C1787CD","RegionalDomainName"]}}}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","description":"*","timeout":"*","memorySize":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e.zip"},"description":"Custom resource function that updates a provided key policy to allow CloudFront access.","environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyLambdaFunctioninlinePolicyAddedToExecutionRole030BCEDF3","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D"}]}}}}}}},"test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy":{"id":"test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/test-cloudfront-s3-cmk-encryption-keyResourceCmkPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kms:DescribeKey","kms:GetKeyPolicy","kms:PutKeyPolicy"],"Effect":"Allow","Resource":{"Fn::GetAtt":["cmkKey598B20B2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeytestcloudfronts3cmkencryptionkeyResourceCmkPolicyBD4BA975","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyLambdaFunctionServiceRole85783D1D"}]}}}}},"KmsKeyPolicyUpdateProvider":{"id":"KmsKeyPolicyUpdateProvider","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRoleDefaultPolicy066CD751","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD"}]}}}}}}},"Code":{"id":"Code","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["testcloudfronts3cmkencryptionkeyLambdaFunction4DCD662E","Arn"]}}],"Version":"2012-10-17"},"policyName":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventinlinePolicyAddedToExecutionRole0055AB010","roles":[{"Ref":"testcloudfronts3cmkencryptionkeyKmsKeyPolicyUpdateProviderframeworkonEventServiceRole3D4040AD"}]}}}}}}}}},"KmsKeyPolicyUpdater":{"id":"KmsKeyPolicyUpdater","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdater","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/test-cloudfront-s3-cmk-encryption-key/KmsKeyPolicyUpdater/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"cfts3-cmk-provided-as-bucket-prop/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"cfts3-cmk-provided-as-bucket-prop/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"cfts3-cmk-provided-as-bucket-prop/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"cfts3-cmk-provided-as-bucket-prop/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"cfts3-cmk-provided-as-bucket-prop/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cfts3-cmk-provided-as-bucket-prop/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cfts3-cmk-provided-as-bucket-prop/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cfts3-cmk-provided-as-bucket-prop/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.adoc index 86a5fd915..f975a287d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.adoc @@ -52,7 +52,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' } }); @@ -93,7 +93,7 @@ import software.amazon.awsconstructs.services.cognitoapigatewaylambda.*; new CognitoToApiGatewayToLambda(this, "test-cognito-apigateway-lambda", new CognitoToApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -119,7 +119,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const construct = new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, apiGatewayProps: { @@ -193,7 +193,7 @@ final CognitoToApiGatewayToLambda construct = new CognitoToApiGatewayToLambda(th "test-cognito-apigateway-lambda", new CognitoToApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilam-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilam-no-arguments.assets.json index 618b28c8b..6140eb065 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilam-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilam-no-arguments.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "test-cognito-apigateway-lambda/LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "92789d1b5403671c6736e406b38449a1d9a59a756f867fb369fcc7b67baa67e7": { + "4737a18260a01894cdce6108429b24dc48edc2c2d6a53c80720233612339eed7": { "displayName": "cogapilam-no-arguments Template", "source": { "path": "cogapilam-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-ef2d4a66": { + "current_account-current_region-10510f4b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "92789d1b5403671c6736e406b38449a1d9a59a756f867fb369fcc7b67baa67e7.json", + "objectKey": "4737a18260a01894cdce6108429b24dc48edc2c2d6a53c80720233612339eed7.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilam-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilam-no-arguments.template.json index b699a9946..8e154670d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilam-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilam-no-arguments.template.json @@ -69,7 +69,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -83,7 +83,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilamnoargumentsIntegDefaultTestDeployAssert6872A16C.assets.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilamnoargumentsIntegDefaultTestDeployAssert6872A16C.assets.json index fa112e9cd..356fd2f58 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilamnoargumentsIntegDefaultTestDeployAssert6872A16C.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/cogapilamnoargumentsIntegDefaultTestDeployAssert6872A16C.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "cogapilamnoargumentsIntegDefaultTestDeployAssert6872A16C Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/integ.json index ca137e923..363888ce5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "cogapilam-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "cogapilamnoargumentsIntegDefaultTestDeployAssert6872A16C" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/manifest.json index 99fe44f10..b7cd640d6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/92789d1b5403671c6736e406b38449a1d9a59a756f867fb369fcc7b67baa67e7.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4737a18260a01894cdce6108429b24dc48edc2c2d6a53c80720233612339eed7.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -524,57 +524,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -583,7 +574,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -660,7 +654,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -804,7 +798,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -833,7 +830,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -897,7 +897,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -931,7 +934,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -954,7 +960,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -984,6 +993,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/tree.json index 0663a74cb..3c94520dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.cogapilam-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"cogapilam-no-arguments":{"id":"cogapilam-no-arguments","path":"cogapilam-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"test-cognito-apigateway-lambda":{"id":"test-cognito-apigateway-lambda","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cognito-apigateway-lambda.CognitoToApiGatewayToLambda","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunctionServiceRole943D8510","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcognitoapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole07151CEBD","roles":[{"Ref":"testcognitoapigatewaylambdaLambdaFunctionServiceRole943D8510"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"},{"endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["EDGE"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testcognitoapigatewaylambdaApiAccessLogGroup9D0D0917","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApiDeployment96AFD8CA5d8e3257747e529ac6f9e48e8d20548e"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaRestApi2E272431","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"}}}},"ANY":{"id":"ANY","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}":{"id":"ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"/",{"Ref":"testcognitoapigatewaylambdaLambdaRestApiDeploymentStageprod850C17D1"},"/*/*"]]}}}},"ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}":{"id":"ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApiproxy23E1DA20"},"restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"}}}}}}}},"ANY":{"id":"ANY","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..":{"id":"ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"/",{"Ref":"testcognitoapigatewaylambdaLambdaRestApiDeploymentStageprod850C17D1"},"/*/"]]}}}},"ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..":{"id":"ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaRestApi2E272431","RootResourceId"]},"restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"stage":{"Ref":"testcognitoapigatewaylambdaLambdaRestApiDeploymentStageprod850C17D1"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaRestApiCloudWatchRole0AC7FF3B","Arn"]}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.206.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.206.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testcognitoapigatewaylambdaCognitoUserPoolD5E74489"}}}}}},"CognitoAuthorizer":{"id":"CognitoAuthorizer","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoAuthorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"identitySource":"method.request.header.Authorization","name":"authorizer","providerArns":[{"Fn::GetAtt":["testcognitoapigatewaylambdaCognitoUserPoolD5E74489","Arn"]}],"restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"type":"COGNITO_USER_POOLS"}}}}},"Integ":{"id":"Integ","path":"cogapilam-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cogapilam-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cogapilam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cogapilam-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cogapilam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cogapilam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cogapilam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cogapilam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"cogapilam-no-arguments":{"id":"cogapilam-no-arguments","path":"cogapilam-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-cognito-apigateway-lambda":{"id":"test-cognito-apigateway-lambda","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-cognito-apigateway-lambda.CognitoToApiGatewayToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunctionServiceRole943D8510","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testcognitoapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole07151CEBD","roles":[{"Ref":"testcognitoapigatewaylambdaLambdaFunctionServiceRole943D8510"}]}}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"LambdaRestApi":{"id":"LambdaRestApi","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"},{"endpointConfiguration":{"types":["EDGE"]},"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"defaultMethodOptions":{"authorizationType":"*"},"handler":"*"}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"endpointConfiguration":{"types":["EDGE"]},"name":"LambdaRestApi"}}},"Deployment":{"id":"Deployment","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["testcognitoapigatewaylambdaApiAccessLogGroup9D0D0917","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApiDeployment96AFD8CA5d8e3257747e529ac6f9e48e8d20548e"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaRestApi2E272431","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"}}}},"ANY":{"id":"ANY","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}":{"id":"ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"/",{"Ref":"testcognitoapigatewaylambdaLambdaRestApiDeploymentStageprod850C17D1"},"/*/*"]]}}}},"ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}":{"id":"ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApiproxy23E1DA20"},"restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"}}}}}}}},"ANY":{"id":"ANY","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..":{"id":"ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"/",{"Ref":"testcognitoapigatewaylambdaLambdaRestApiDeploymentStageprod850C17D1"},"/*/"]]}}}},"ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..":{"id":"ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/ANY/ApiPermission.Test.cogapilamnoargumentstestcognitoapigatewaylambdaLambdaRestApi67DF35F8.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"AWS_IAM","httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaFunction0C8EAC23","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaRestApi2E272431","RootResourceId"]},"restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"}}}}}}}},"UsagePlan":{"id":"UsagePlan","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"stage":{"Ref":"testcognitoapigatewaylambdaLambdaRestApiDeploymentStageprod850C17D1"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["testcognitoapigatewaylambdaLambdaRestApiCloudWatchRole0AC7FF3B","Arn"]}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testcognitoapigatewaylambdaCognitoUserPoolD5E74489"}}}}}},"CognitoAuthorizer":{"id":"CognitoAuthorizer","path":"cogapilam-no-arguments/test-cognito-apigateway-lambda/CognitoAuthorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"identitySource":"method.request.header.Authorization","name":"authorizer","providerArns":[{"Fn::GetAtt":["testcognitoapigatewaylambdaCognitoUserPoolD5E74489","Arn"]}],"restApiId":{"Ref":"testcognitoapigatewaylambdaLambdaRestApi2E272431"},"type":"COGNITO_USER_POOLS"}}}}},"Integ":{"id":"Integ","path":"cogapilam-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"cogapilam-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"cogapilam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"cogapilam-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"cogapilam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cogapilam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"cogapilam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"cogapilam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/README.adoc b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/README.adoc index 6e69b3cc3..0c63f13e3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/README.adoc @@ -174,7 +174,7 @@ to the access log bucket) == Architecture -image::aws-constructs-factories.png["Diagram showing the S3 bucket and Access Log bucket created by the factory.",scaledwidth=100%] +image::aws-constructs-factories-s3.png["Diagram showing the S3 bucket and Access Log bucket created by the factory.",scaledwidth=100%] [[step-functions-state-machines-docs]] == Step Functions State Machines @@ -302,7 +302,7 @@ name collisions. == Architecture -image::sf-architecture.png["Diagram showing the State Machine, CloudWatch Logs and Alarms, and IAM Role launched by the factory.",scaledwidth=100%] +image::aws-constructs-factories-sf.png["Diagram showing the State Machine, CloudWatch Logs and Alarms, and IAM Role launched by the factory.",scaledwidth=100%] [[sqs-queues-docs]] == SQS Queues @@ -415,7 +415,7 @@ can override) == Architecture -image::sqs-architecture.png["Diagram showing the KMS keys, SQS Queue and Dead Letter Queue launched by the factory.",scaledwidth=100%] +image::aws-constructs-factories-sqs.png["Diagram showing the KMS keys, SQS Queue and Dead Letter Queue launched by the factory.",scaledwidth=100%] [[vpc-docs]] == Virtual Private Cloud (VPC) @@ -527,7 +527,7 @@ Security Groups. Wnile the architecture deployed will vary depending on the Subnet configuration, the diagram below represents what is deployed if the client requests PUBLIC and PRIVATE_WITH_EGRESS subnet. -image::vpc-architecture.png["Diagram showing the VPC, Subnets, Route Tables, Internet Gateway, NAT Gateways, Interface Endpoint and Flow Log.",scaledwidth=100%] +image::aws-constructs-factories-vpc.png["Diagram showing the VPC, Subnets, Route Tables, Internet Gateway, NAT Gateways, Interface Endpoint and Flow Log.",scaledwidth=100%] // github block diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories.png b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories-s3.png similarity index 100% rename from source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories.png rename to source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories-s3.png diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/sf-architecture.png b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories-sf.png similarity index 100% rename from source/patterns/@aws-solutions-constructs/aws-constructs-factories/sf-architecture.png rename to source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories-sf.png diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/sqs-architecture.png b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories-sqs.png similarity index 100% rename from source/patterns/@aws-solutions-constructs/aws-constructs-factories/sqs-architecture.png rename to source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories-sqs.png diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories-vpc.png b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories-vpc.png new file mode 100644 index 000000000..40c220ad3 Binary files /dev/null and b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/aws-constructs-factories-vpc.png differ diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/fac-all-resources-default.assets.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/fac-all-resources-default.assets.json index 9630c19bd..bc64ecf3f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/fac-all-resources-default.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/fac-all-resources-default.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "displayName": "fac-all-resources-default/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", @@ -15,16 +15,16 @@ } } }, - "9c4110231896c2cc0bd1349a7a992ddd8463d2ac9e5eb0eeb24ade3eb0fbf79b": { + "d6a62752050f0fd3774f5991f03b6eb4d66d0d3cedf55b75598b357ac0909c95": { "displayName": "fac-all-resources-default Template", "source": { "path": "fac-all-resources-default.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-03b7819f": { + "current_account-current_region-8f101b95": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "9c4110231896c2cc0bd1349a7a992ddd8463d2ac9e5eb0eeb24ade3eb0fbf79b.json", + "objectKey": "d6a62752050f0fd3774f5991f03b6eb4d66d0d3cedf55b75598b357ac0909c95.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/fac-all-resources-default.template.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/fac-all-resources-default.template.json index a458fa694..cc0683ad7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/fac-all-resources-default.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/fac-all-resources-default.template.json @@ -810,7 +810,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdatestServiceRoleF3BDB8FC" diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/facallresourcesdefaultIntegDefaultTestDeployAssertB575F841.assets.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/facallresourcesdefaultIntegDefaultTestDeployAssertB575F841.assets.json index 60bbb9837..b230e9182 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/facallresourcesdefaultIntegDefaultTestDeployAssertB575F841.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/facallresourcesdefaultIntegDefaultTestDeployAssertB575F841.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "facallresourcesdefaultIntegDefaultTestDeployAssertB575F841 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/integ.json index 8b38afd10..ca4bacf1a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "fac-all-resources-default/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "facallresourcesdefaultIntegDefaultTestDeployAssertB575F841" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/manifest.json index bd74576e8..740ff6437 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9c4110231896c2cc0bd1349a7a992ddd8463d2ac9e5eb0eeb24ade3eb0fbf79b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d6a62752050f0fd3774f5991f03b6eb4d66d0d3cedf55b75598b357ac0909c95.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -403,7 +403,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -423,7 +424,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -443,7 +445,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -546,57 +549,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -605,7 +599,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -682,7 +679,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -826,7 +823,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -855,7 +855,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -919,7 +922,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -953,7 +959,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -976,7 +985,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1006,6 +1018,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/tree.json index 457f535ad..8110211a6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/integ.fac-all-resources-default.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"fac-all-resources-default":{"id":"fac-all-resources-default","path":"fac-all-resources-default","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"integ-test":{"id":"integ-test","path":"fac-all-resources-default/integ-test","constructInfo":{"fqn":"@aws-solutions-constructs/aws-constructs-factories.ConstructsFactories","version":"2.86.0"},"children":{"testS3LoggingBucket":{"id":"testS3LoggingBucket","path":"fac-all-resources-default/integ-test/testS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"integtesttestS3LoggingBucket91D581BF"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["integtesttestS3Bucket42B91B48","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"testS3Bucket":{"id":"testS3Bucket","path":"fac-all-resources-default/integ-test/testS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/testS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"integtesttestS3LoggingBucket91D581BF"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"fac-all-resources-default/integ-test/testS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/testS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"integtesttestS3Bucket42B91B48"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["integtesttestS3Bucket42B91B48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["integtesttestS3Bucket42B91B48","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-dlq":{"id":"test-dlq","path":"fac-all-resources-default/integ-test/test-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.206.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/test-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"fac-all-resources-default/integ-test/test-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.206.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/test-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["integtesttestdlqF73DF092","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["integtesttestdlqF73DF092","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"integtesttestdlqF73DF092"}]}}}}}}},"test":{"id":"test","path":"fac-all-resources-default/integ-test/test","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.206.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["integtesttestdlqF73DF092","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"fac-all-resources-default/integ-test/test/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.206.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/test/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["integtest1192C30B","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["integtest1192C30B","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"integtest1192C30B"}]}}}}}}},"StateMachineLogGrouptestsm":{"id":"StateMachineLogGrouptestsm","path":"fac-all-resources-default/integ-test/StateMachineLogGrouptestsm","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/StateMachineLogGrouptestsm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/fac-all-resources-defaulttestsmStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachinetestsm":{"id":"StateMachinetestsm","path":"fac-all-resources-default/integ-test/StateMachinetestsm","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.206.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"integtestStateMachinetestsmRoleDefaultPolicy7DBA7025","roles":[{"Ref":"integtestStateMachinetestsmRoleD1F9CE9B"}]}}}}}}},"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasktest\",\"States\":{\"tasktest\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["integtestStateMachineLogGrouptestsmA7D771BD","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["integtestStateMachinetestsmRoleD1F9CE9B","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"fac-all-resources-default/integ-test/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.206.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"integtestStateMachinetestsm53990095"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"fac-all-resources-default/integ-test/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.206.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"integtestStateMachinetestsm53990095"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"fac-all-resources-default/integ-test/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.206.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"integtestStateMachinetestsm53990095"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"fac-all-resources-default/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"fac-all-resources-default/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"fac-all-resources-default/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"fac-all-resources-default/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"lambdatest":{"id":"lambdatest","path":"fac-all-resources-default/lambdatest","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"fac-all-resources-default/lambdatest/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"fac-all-resources-default/lambdatest/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"fac-all-resources-default/lambdatest/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"fac-all-resources-default/lambdatest/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdatestServiceRoleF3BDB8FC","Arn"]},"runtime":"nodejs20.x"}}}}},"tasktest":{"id":"tasktest","path":"fac-all-resources-default/tasktest","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.206.0"}},"Integ":{"id":"Integ","path":"fac-all-resources-default/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"fac-all-resources-default/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"fac-all-resources-default/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"fac-all-resources-default/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"fac-all-resources-default/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"fac-all-resources-default/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"fac-all-resources-default/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"fac-all-resources-default/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"fac-all-resources-default":{"id":"fac-all-resources-default","path":"fac-all-resources-default","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"integ-test":{"id":"integ-test","path":"fac-all-resources-default/integ-test","constructInfo":{"fqn":"@aws-solutions-constructs/aws-constructs-factories.ConstructsFactories","version":"2.95.1"},"children":{"testS3LoggingBucket":{"id":"testS3LoggingBucket","path":"fac-all-resources-default/integ-test/testS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"integtesttestS3LoggingBucket91D581BF"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["integtesttestS3Bucket42B91B48","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["integtesttestS3LoggingBucket91D581BF","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"fac-all-resources-default/integ-test/testS3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"testS3Bucket":{"id":"testS3Bucket","path":"fac-all-resources-default/integ-test/testS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/testS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"integtesttestS3LoggingBucket91D581BF"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"fac-all-resources-default/integ-test/testS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/testS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"integtesttestS3Bucket42B91B48"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["integtesttestS3Bucket42B91B48","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["integtesttestS3Bucket42B91B48","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-dlq":{"id":"test-dlq","path":"fac-all-resources-default/integ-test/test-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/test-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"fac-all-resources-default/integ-test/test-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/test-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["integtesttestdlqF73DF092","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["integtesttestdlqF73DF092","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"integtesttestdlqF73DF092"}]}}}}}}},"test":{"id":"test","path":"fac-all-resources-default/integ-test/test","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["integtesttestdlqF73DF092","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"fac-all-resources-default/integ-test/test/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/test/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["integtest1192C30B","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["integtest1192C30B","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"integtest1192C30B"}]}}}}}}},"StateMachineLogGrouptestsm":{"id":"StateMachineLogGrouptestsm","path":"fac-all-resources-default/integ-test/StateMachineLogGrouptestsm","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/StateMachineLogGrouptestsm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/fac-all-resources-defaulttestsmStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachinetestsm":{"id":"StateMachinetestsm","path":"fac-all-resources-default/integ-test/StateMachinetestsm","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"integtestStateMachinetestsmRoleDefaultPolicy7DBA7025","roles":[{"Ref":"integtestStateMachinetestsmRoleD1F9CE9B"}]}}}}}}},"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/StateMachinetestsm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasktest\",\"States\":{\"tasktest\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["integtestStateMachineLogGrouptestsmA7D771BD","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["integtestStateMachinetestsmRoleD1F9CE9B","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"fac-all-resources-default/integ-test/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"integtestStateMachinetestsm53990095"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"fac-all-resources-default/integ-test/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"integtestStateMachinetestsm53990095"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"fac-all-resources-default/integ-test/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"fac-all-resources-default/integ-test/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"integtestStateMachinetestsm53990095"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"fac-all-resources-default/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"fac-all-resources-default/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"fac-all-resources-default/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"fac-all-resources-default/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lambdatest":{"id":"lambdatest","path":"fac-all-resources-default/lambdatest","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"fac-all-resources-default/lambdatest/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"fac-all-resources-default/lambdatest/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"fac-all-resources-default/lambdatest/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"fac-all-resources-default/lambdatest/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdatestServiceRoleF3BDB8FC","Arn"]},"runtime":"nodejs22.x"}}}}},"tasktest":{"id":"tasktest","path":"fac-all-resources-default/tasktest","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"Integ":{"id":"Integ","path":"fac-all-resources-default/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"fac-all-resources-default/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"fac-all-resources-default/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"fac-all-resources-default/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"fac-all-resources-default/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"fac-all-resources-default/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"fac-all-resources-default/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"fac-all-resources-default/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstp-defaults.assets.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstp-defaults.assets.json index 3ca894262..def2a3bae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstp-defaults.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstp-defaults.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "e19229f01766b6cf94df924a961a93eee5a45a8277c6caa0660f1a4fa1e18efe": { + "97f175372f4db2d843ce1eb585e9a2d4abdee2e67ecc6cd3a396394167a2ba4a": { "displayName": "facstp-defaults Template", "source": { "path": "facstp-defaults.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-ec025092": { + "current_account-current_region-6833ba1f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "e19229f01766b6cf94df924a961a93eee5a45a8277c6caa0660f1a4fa1e18efe.json", + "objectKey": "97f175372f4db2d843ce1eb585e9a2d4abdee2e67ecc6cd3a396394167a2ba4a.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstp-defaults.template.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstp-defaults.template.json index ce31af4e3..da914e563 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstp-defaults.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstp-defaults.template.json @@ -283,7 +283,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdatestServiceRoleF3BDB8FC" diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstpdefaultsIntegDefaultTestDeployAssertFD717592.assets.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstpdefaultsIntegDefaultTestDeployAssertFD717592.assets.json index 3c22fa62f..0763146da 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstpdefaultsIntegDefaultTestDeployAssertFD717592.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/facstpdefaultsIntegDefaultTestDeployAssertFD717592.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "facstpdefaultsIntegDefaultTestDeployAssertFD717592 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/integ.json index 42be43356..3c49dc71d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "facstp-defaults/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "facstpdefaultsIntegDefaultTestDeployAssertFD717592" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/manifest.json index b7f94c586..475973abe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e19229f01766b6cf94df924a961a93eee5a45a8277c6caa0660f1a4fa1e18efe.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/97f175372f4db2d843ce1eb585e9a2d4abdee2e67ecc6cd3a396394167a2ba4a.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -235,7 +235,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -255,7 +256,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -275,7 +277,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -374,57 +377,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -433,7 +427,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -510,7 +507,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -654,7 +651,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -683,7 +683,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -747,7 +750,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -781,7 +787,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -804,7 +813,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -834,6 +846,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/tree.json index 1e09b3287..2dd2a1f64 100644 --- a/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-constructs-factories/test/stepfunctions/integ.facstp-defaults.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"facstp-defaults":{"id":"facstp-defaults","path":"facstp-defaults","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"target":{"id":"target","path":"facstp-defaults/target","constructInfo":{"fqn":"@aws-solutions-constructs/aws-constructs-factories.ConstructsFactories","version":"2.86.0"},"children":{"StateMachineLogGrouptestsm":{"id":"StateMachineLogGrouptestsm","path":"facstp-defaults/target/StateMachineLogGrouptestsm","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/StateMachineLogGrouptestsm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/facstp-defaultstestsmStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachinetestsm":{"id":"StateMachinetestsm","path":"facstp-defaults/target/StateMachinetestsm","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.206.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"facstp-defaults/target/StateMachinetestsm/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"facstp-defaults/target/StateMachinetestsm/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"facstp-defaults/target/StateMachinetestsm/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"facstp-defaults/target/StateMachinetestsm/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/StateMachinetestsm/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"targetStateMachinetestsmRoleDefaultPolicy468E802C","roles":[{"Ref":"targetStateMachinetestsmRoleB774D656"}]}}}}}}},"Resource":{"id":"Resource","path":"facstp-defaults/target/StateMachinetestsm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasktest\",\"States\":{\"tasktest\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["targetStateMachineLogGrouptestsm52968C7C","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["targetStateMachinetestsmRoleB774D656","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"facstp-defaults/target/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.206.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"targetStateMachinetestsm59897C57"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"facstp-defaults/target/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.206.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"targetStateMachinetestsm59897C57"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"facstp-defaults/target/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.206.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"targetStateMachinetestsm59897C57"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}}}},"lambdatest":{"id":"lambdatest","path":"facstp-defaults/lambdatest","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"facstp-defaults/lambdatest/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"facstp-defaults/lambdatest/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"facstp-defaults/lambdatest/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"facstp-defaults/lambdatest/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdatestServiceRoleF3BDB8FC","Arn"]},"runtime":"nodejs20.x"}}},"LogGroup":{"id":"LogGroup","path":"facstp-defaults/lambdatest/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/lambdatest/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/lambda/",{"Ref":"lambdatest8B679D7F"}]]},"retentionInDays":731}}}}}}},"tasktest":{"id":"tasktest","path":"facstp-defaults/tasktest","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.206.0"}},"Integ":{"id":"Integ","path":"facstp-defaults/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"facstp-defaults/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"facstp-defaults/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"facstp-defaults/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"facstp-defaults/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"facstp-defaults/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"facstp-defaults/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"facstp-defaults/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"facstp-defaults":{"id":"facstp-defaults","path":"facstp-defaults","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"target":{"id":"target","path":"facstp-defaults/target","constructInfo":{"fqn":"@aws-solutions-constructs/aws-constructs-factories.ConstructsFactories","version":"2.95.1"},"children":{"StateMachineLogGrouptestsm":{"id":"StateMachineLogGrouptestsm","path":"facstp-defaults/target/StateMachineLogGrouptestsm","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/StateMachineLogGrouptestsm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/facstp-defaultstestsmStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachinetestsm":{"id":"StateMachinetestsm","path":"facstp-defaults/target/StateMachinetestsm","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"facstp-defaults/target/StateMachinetestsm/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"facstp-defaults/target/StateMachinetestsm/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"facstp-defaults/target/StateMachinetestsm/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"facstp-defaults/target/StateMachinetestsm/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/StateMachinetestsm/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"targetStateMachinetestsmRoleDefaultPolicy468E802C","roles":[{"Ref":"targetStateMachinetestsmRoleB774D656"}]}}}}}}},"Resource":{"id":"Resource","path":"facstp-defaults/target/StateMachinetestsm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasktest\",\"States\":{\"tasktest\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdatest8B679D7F","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["targetStateMachineLogGrouptestsm52968C7C","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["targetStateMachinetestsmRoleB774D656","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"facstp-defaults/target/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"targetStateMachinetestsm59897C57"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"facstp-defaults/target/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"targetStateMachinetestsm59897C57"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"facstp-defaults/target/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/target/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"targetStateMachinetestsm59897C57"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}}}},"lambdatest":{"id":"lambdatest","path":"facstp-defaults/lambdatest","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"facstp-defaults/lambdatest/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"facstp-defaults/lambdatest/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"facstp-defaults/lambdatest/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"facstp-defaults/lambdatest/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdatestServiceRoleF3BDB8FC","Arn"]},"runtime":"nodejs22.x"}}},"LogGroup":{"id":"LogGroup","path":"facstp-defaults/lambdatest/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"facstp-defaults/lambdatest/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/lambda/",{"Ref":"lambdatest8B679D7F"}]]},"retentionInDays":731}}}}}}},"tasktest":{"id":"tasktest","path":"facstp-defaults/tasktest","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"Integ":{"id":"Integ","path":"facstp-defaults/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"facstp-defaults/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"facstp-defaults/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"facstp-defaults/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"facstp-defaults/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"facstp-defaults/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"facstp-defaults/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"facstp-defaults/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.adoc b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.adoc index 1894e7c18..5da8a98d4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.adoc @@ -73,7 +73,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, domainName: 'test-domain', @@ -124,7 +124,7 @@ import software.amazon.awsconstructs.services.dynamodbstreamslambdaelasticsearch new DynamoDBStreamsToLambdaToElasticSearchAndKibana(this, "test-dynamodb-stream-lambda-elasticsearch-kibana", new DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/dbslamels-deploy-with-vpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/dbslamels-deploy-with-vpc.assets.json index a88b36e65..4acafb372 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/dbslamels-deploy-with-vpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/dbslamels-deploy-with-vpc.assets.json @@ -29,16 +29,16 @@ } } }, - "ee2a67e2fc70da506b9a7059820528b77c2a1aa63805e9cd4e572a224a6d077d": { + "6a934465cfd8a3e06331e3e0a3c56a3df55a00d6ddd3f56f6e532b8d34feecd7": { "displayName": "dbslamels-deploy-with-vpc Template", "source": { "path": "dbslamels-deploy-with-vpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-aa5ae706": { + "current_account-current_region-a7a6d1a2": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ee2a67e2fc70da506b9a7059820528b77c2a1aa63805e9cd4e572a224a6d077d.json", + "objectKey": "6a934465cfd8a3e06331e3e0a3c56a3df55a00d6ddd3f56f6e532b8d34feecd7.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/dbslamels-deploy-with-vpc.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/dbslamels-deploy-with-vpc.template.json index d6bd5b942..70200747b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/dbslamels-deploy-with-vpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/dbslamels-deploy-with-vpc.template.json @@ -185,7 +185,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -851,6 +851,9 @@ ] } }, + "DependsOn": [ + "testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/manifest.json index 7d0972ef3..2b2384766 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ee2a67e2fc70da506b9a7059820528b77c2a1aa63805e9cd4e572a224a6d077d.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6a934465cfd8a3e06331e3e0a3c56a3df55a00d6ddd3f56f6e532b8d34feecd7.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/tree.json index a1ee6c8d7..760833d56 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-deploy-with-vpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbslamels-deploy-with-vpc":{"id":"dbslamels-deploy-with-vpc","path":"dbslamels-deploy-with-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-ddbstreams-lambda-esk":{"id":"test-ddbstreams-lambda-esk","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana.DynamoDBStreamsToLambdaToElasticSearchAndKibana","version":"2.94.0"},"children":{"LambdaToElasticSearch":{"id":"LambdaToElasticSearch","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:ListStreams","ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableDD18004A","StreamArn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleDefaultPolicyA7EEDEDA","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchElasticsearchDomain96DEE173","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet1Subnet3A238B01"},{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet2SubnetDE9E844E"}],"securityGroupIds":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchReplaceDefaultSecurityGroupsecuritygroupB649DF04","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctioninlinePolicyAddedToExecutionRole05D4F2798","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B"}]}}}}},"DynamoDBEventSource:dbslamelsdeploywithvpctestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTable3450D243":{"id":"DynamoDBEventSource:dbslamelsdeploywithvpctestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTable3450D243","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/DynamoDBEventSource:dbslamelsdeploywithvpctestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTable3450D243","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","eventSourceArn":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/DynamoDBEventSource:dbslamelsdeploywithvpctestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTable3450D243/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableDD18004A","StreamArn"]},"functionName":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionB70B7296"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":500,"startingPosition":"TRIM_HORIZON"}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPoolClient25D50E3D"},"providerName":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["cog",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["cog",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"},"roles":{"authenticated":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoAuthorizedRoleB096BF2F","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRolePolicy62E429A3","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoAuthorizedRoleB096BF2F","Arn"]},{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"},"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"},"roleArn":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet1Subnet3A238B01"},{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet2SubnetDE9E844E"}],"securityGroupIds":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchReplaceDefaultSecurityGroupsecuritygroupB649DF04","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}},"Acl":{"id":"Acl","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet1RouteTable27ABBE41"},"subnetId":{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet1Subnet3A238B01"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}},"Acl":{"id":"Acl","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet2RouteTable358580C2"},"subnetId":{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet2SubnetDE9E844E"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskVpcFlowLogLogGroup4DB5270C","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskVpcFlowLogIAMRoleDefaultPolicyCB53568A","roles":[{"Ref":"testddbstreamslambdaeskVpcFlowLogIAMRole8B3A466E"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["testddbstreamslambdaeskVpcFlowLogIAMRole8B3A466E","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"testddbstreamslambdaeskVpcFlowLogLogGroup4DB5270C"},"resourceId":{"Ref":"testddbstreamslambdaeskVpcB583E197"},"resourceType":"VPC","tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"DynamoDBStreamsToLambda":{"id":"DynamoDBStreamsToLambda","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambda","version":"2.94.0"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B"}]}}}}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"dbslamels-deploy-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"dbslamels-deploy-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"dbslamels-deploy-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"dbslamels-deploy-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"dbslamels-deploy-with-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslamels-deploy-with-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslamels-deploy-with-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbslamels-deploy-with-vpc":{"id":"dbslamels-deploy-with-vpc","path":"dbslamels-deploy-with-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-ddbstreams-lambda-esk":{"id":"test-ddbstreams-lambda-esk","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana.DynamoDBStreamsToLambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaToElasticSearch":{"id":"LambdaToElasticSearch","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:ListStreams","ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableDD18004A","StreamArn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleDefaultPolicyA7EEDEDA","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchElasticsearchDomain96DEE173","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet1Subnet3A238B01"},{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet2SubnetDE9E844E"}],"securityGroupIds":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchReplaceDefaultSecurityGroupsecuritygroupB649DF04","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctioninlinePolicyAddedToExecutionRole05D4F2798","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B"}]}}}}},"DynamoDBEventSource:dbslamelsdeploywithvpctestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTable3450D243":{"id":"DynamoDBEventSource:dbslamelsdeploywithvpctestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTable3450D243","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/DynamoDBEventSource:dbslamelsdeploywithvpctestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTable3450D243","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","eventSourceArn":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/DynamoDBEventSource:dbslamelsdeploywithvpctestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTable3450D243/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableDD18004A","StreamArn"]},"functionName":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionB70B7296"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":500,"startingPosition":"TRIM_HORIZON"}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPoolClient25D50E3D"},"providerName":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["cog",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["cog",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"},"roles":{"authenticated":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoAuthorizedRoleB096BF2F","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRolePolicy62E429A3","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoAuthorizedRoleB096BF2F","Arn"]},{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"},"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"},"roleArn":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet1Subnet3A238B01"},{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet2SubnetDE9E844E"}],"securityGroupIds":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchReplaceDefaultSecurityGroupsecuritygroupB649DF04","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}},"Acl":{"id":"Acl","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet1RouteTable27ABBE41"},"subnetId":{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet1Subnet3A238B01"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}},"Acl":{"id":"Acl","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testddbstreamslambdaeskVpcB583E197"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet2RouteTable358580C2"},"subnetId":{"Ref":"testddbstreamslambdaeskVpcisolatedSubnet2SubnetDE9E844E"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskVpcFlowLogLogGroup4DB5270C","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskVpcFlowLogIAMRoleDefaultPolicyCB53568A","roles":[{"Ref":"testddbstreamslambdaeskVpcFlowLogIAMRole8B3A466E"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["testddbstreamslambdaeskVpcFlowLogIAMRole8B3A466E","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"testddbstreamslambdaeskVpcFlowLogLogGroup4DB5270C"},"resourceId":{"Ref":"testddbstreamslambdaeskVpcB583E197"},"resourceType":"VPC","tags":[{"key":"Name","value":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"DynamoDBStreamsToLambda":{"id":"DynamoDBStreamsToLambda","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambda","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-deploy-with-vpc/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B"}]}}}}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"dbslamels-deploy-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"dbslamels-deploy-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"dbslamels-deploy-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"dbslamels-deploy-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"dbslamels-deploy-with-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslamels-deploy-with-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslamels-deploy-with-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslamels-deploy-with-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/asset.a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6/index.js b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/asset.a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6/index.js new file mode 100644 index 000000000..b188689c3 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/asset.a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6/index.js @@ -0,0 +1,81 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +var AWS = require('aws-sdk'); +var path = require('path'); + +console.log('Loading function'); + +var esDomain = { + endpoint: process.env.DOMAIN_ENDPOINT, + region: process.env.AWS_REGION, + index: 'lambda-index', + doctype: 'lambda-type' +}; + +var creds = new AWS.EnvironmentCredentials('AWS'); +var endpoint = new AWS.Endpoint(esDomain.endpoint); + +function postDocumentToES(doc, context, id) { + var req = new AWS.HttpRequest(endpoint); + + req.method = 'POST'; + req.path = path.join('/', esDomain.index, esDomain.doctype, id); + req.region = esDomain.region; + req.body = doc; + req.headers['presigned-expires'] = false; + req.headers['Host'] = esDomain.endpoint; + req.headers['Content-Type'] = 'application/json'; + + // Sign the request (Sigv4) + var signer = new AWS.Signers.V4(req, 'es'); + signer.addAuthorization(creds, new Date()); + + // Post document to ES + var send = new AWS.NodeHttpClient(); + send.handleRequest(req, null, function(httpResp) { + var body = ''; + httpResp.on('data', function (chunk) { + body += chunk; + }); + httpResp.on('end', function (chunk) { + console.log('DynamoDB record added to ES.'); + context.succeed(); + }); + }, function(err) { + console.log('Error: ' + err); + context.fail(); + }); +} + +exports.handler = (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); + let count = 0; + + event.Records.forEach((record) => { + const id = record.dynamodb.Keys.id.S; + + if (record.dynamodb.NewImage) { + postDocumentToES(JSON.stringify(record.dynamodb.NewImage), context, id); + } + + count += 1 + }); + + + return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `${count} records processed.\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamels-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamels-no-arguments.assets.json index 2b336f924..6def8a867 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamels-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamels-no-arguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6": { + "displayName": "test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code", "source": { "path": "asset.a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-25de3c10": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "ea7578f163d84d6eb6356963dc7f3f6b69ac76f4c7082a73d7d29725c1c400c9": { + "b476a588c69d37bee4a60f48519f00d4664c5b269aa50244cff1f147dada6273": { + "displayName": "dbslamels-no-arguments Template", "source": { "path": "dbslamels-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-b78984b3": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ea7578f163d84d6eb6356963dc7f3f6b69ac76f4c7082a73d7d29725c1c400c9.json", + "objectKey": "b476a588c69d37bee4a60f48519f00d4664c5b269aa50244cff1f147dada6273.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamels-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamels-no-arguments.template.json index 33e886a5e..7d3aa0f35 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamels-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamels-no-arguments.template.json @@ -138,7 +138,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -758,6 +758,9 @@ "AutomatedSnapshotStartHour": 1 } }, + "DependsOn": [ + "testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamelsnoargumentsIntegDefaultTestDeployAssert903053D4.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamelsnoargumentsIntegDefaultTestDeployAssert903053D4.assets.json index 3240b6056..2d35ec494 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamelsnoargumentsIntegDefaultTestDeployAssert903053D4.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/dbslamelsnoargumentsIntegDefaultTestDeployAssert903053D4.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbslamelsnoargumentsIntegDefaultTestDeployAssert903053D4 Template", "source": { "path": "dbslamelsnoargumentsIntegDefaultTestDeployAssert903053D4.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/integ.json index 9740a3f8b..351bcc851 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "dbslamels-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbslamels-no-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbslamelsnoargumentsIntegDefaultTestDeployAssert903053D4" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/manifest.json index 7071ff4d1..d7975abf5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "dbslamelsnoargumentsIntegDefaultTestDeployAssert903053D4.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ea7578f163d84d6eb6356963dc7f3f6b69ac76f4c7082a73d7d29725c1c400c9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b476a588c69d37bee4a60f48519f00d4664c5b269aa50244cff1f147dada6273.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -509,7 +509,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -529,7 +530,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -549,7 +551,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -569,7 +572,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -589,7 +593,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -609,7 +614,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -629,7 +635,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -649,7 +656,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -669,7 +677,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -690,12 +699,14 @@ "data": { "billingMode": "PAY_PER_REQUEST", "encryption": "AWS_MANAGED", - "pointInTimeRecovery": true, "partitionKey": { "name": "*", "type": "S" }, - "stream": "NEW_AND_OLD_IMAGES" + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } } } ], @@ -761,7 +772,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/tree.json index e805c0d16..211871197 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.dbslamels-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"dbslamels-no-arguments":{"id":"dbslamels-no-arguments","path":"dbslamels-no-arguments","children":{"test-ddbstreams-lambda-esk":{"id":"test-ddbstreams-lambda-esk","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk","children":{"LambdaToElasticSearch":{"id":"LambdaToElasticSearch","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"dynamodb:ListStreams","Effect":"Allow","Resource":"*"},{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableDD18004A","StreamArn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleDefaultPolicyA7EEDEDA","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction","children":{"Code":{"id":"Code","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchElasticsearchDomain96DEE173","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctioninlinePolicyAddedToExecutionRole05D4F2798","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"DynamoDBEventSource:dbslamelsnoargumentstestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableE5DA3737":{"id":"DynamoDBEventSource:dbslamelsnoargumentstestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableE5DA3737","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/DynamoDBEventSource:dbslamelsnoargumentstestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableE5DA3737","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/DynamoDBEventSource:dbslamelsnoargumentstestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableE5DA3737/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableDD18004A","StreamArn"]},"functionName":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionB70B7296"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":500,"startingPosition":"TRIM_HORIZON"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","eventSourceArn":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"CognitoUserPool":{"id":"CognitoUserPool","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPool","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPool/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.186.0","metadata":["*"]}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPoolClient","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPoolClient/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.186.0","metadata":[{"userPool":"*"}]}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoIdentityPool","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPoolClient25D50E3D"},"providerName":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952","ProviderName"]},"serverSideTokenCheck":true}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.186.0"}},"UserPoolDomain":{"id":"UserPoolDomain","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/UserPoolDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["cog",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.186.0"}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole","children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["cog",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IdentityPoolRoleMapping","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"},"roles":{"authenticated":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoAuthorizedRoleB096BF2F","Arn"]}}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.186.0"}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole","children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRolePolicy","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRolePolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRolePolicy62E429A3","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ElasticsearchDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoAuthorizedRoleB096BF2F","Arn"]},{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"},"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"},"roleArn":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.186.0"}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusRedAlarm","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusRedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusYellowAlarm","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusYellowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/FreeStorageSpaceTooLowAlarm","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/FreeStorageSpaceTooLowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IndexWritesBlockedTooHighAlarm","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IndexWritesBlockedTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/AutomatedSnapshotFailureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/AutomatedSnapshotFailureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/JVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/JVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterCPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterCPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterJVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterJVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.80.0"}},"DynamoDBStreamsToLambda":{"id":"DynamoDBStreamsToLambda","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda","children":{"DynamoTable":{"id":"DynamoTable","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.186.0"}},"ScalingRole":{"id":"ScalingRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.186.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":true,"partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES"}]}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Policy","children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambda","version":"2.80.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana.DynamoDBStreamsToLambdaToElasticSearchAndKibana","version":"2.80.0"}},"Integ":{"id":"Integ","path":"dbslamels-no-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"dbslamels-no-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"dbslamels-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbslamels-no-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslamels-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslamels-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslamels-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslamels-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbslamels-no-arguments":{"id":"dbslamels-no-arguments","path":"dbslamels-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-ddbstreams-lambda-esk":{"id":"test-ddbstreams-lambda-esk","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana.DynamoDBStreamsToLambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaToElasticSearch":{"id":"LambdaToElasticSearch","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"dynamodb:ListStreams","Effect":"Allow","Resource":"*"},{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableDD18004A","StreamArn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleDefaultPolicyA7EEDEDA","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a74ebe51b3b0a5d5ce9dba94e06a0334a9996a636fa2de01e119363adc36f9a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchElasticsearchDomain96DEE173","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctioninlinePolicyAddedToExecutionRole05D4F2798","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B"}]}}}}},"DynamoDBEventSource:dbslamelsnoargumentstestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableE5DA3737":{"id":"DynamoDBEventSource:dbslamelsnoargumentstestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableE5DA3737","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/DynamoDBEventSource:dbslamelsnoargumentstestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableE5DA3737","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","eventSourceArn":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/LambdaFunction/DynamoDBEventSource:dbslamelsnoargumentstestddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableE5DA3737/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaDynamoTableDD18004A","StreamArn"]},"functionName":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionB70B7296"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":500,"startingPosition":"TRIM_HORIZON"}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPoolClient25D50E3D"},"providerName":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["cog",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["cog",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"},"roles":{"authenticated":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoAuthorizedRoleB096BF2F","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD","Arn"]}}],"Version":"2012-10-17"},"policyName":"testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRolePolicy62E429A3","roles":[{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoAuthorizedRoleB096BF2F","Arn"]},{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchLambdaFunctionServiceRoleEC11512B","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoIdentityPoolFAA4D969"},"userPoolId":{"Ref":"testddbstreamslambdaeskLambdaToElasticSearchCognitoUserPool97EA2952"},"roleArn":{"Fn::GetAtt":["testddbstreamslambdaeskLambdaToElasticSearchCognitoKibanaConfigureRole9DE845CD","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/LambdaToElasticSearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"DynamoDBStreamsToLambda":{"id":"DynamoDBStreamsToLambda","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambda","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslamels-no-arguments/test-ddbstreams-lambda-esk/DynamoDBStreamsToLambda/SqsDlqQueue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testddbstreamslambdaeskDynamoDBStreamsToLambdaSqsDlqQueue82B4D17B"}]}}}}}}}}}}},"Integ":{"id":"Integ","path":"dbslamels-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbslamels-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"dbslamels-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbslamels-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslamels-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslamels-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslamels-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslamels-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.adoc index c9efb007d..3278ff5dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.adoc @@ -52,7 +52,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new DynamoDBStreamsToLambda(this, 'test-dynamodbstreams-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, }); @@ -93,7 +93,7 @@ import software.amazon.awsconstructs.services.dynamodbstreamslambda.*; new DynamoDBStreamsToLambda(this, "test-dynamodbstreams-lambda", new DynamoDBStreamsToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslam-existing-table.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslam-existing-table.assets.json index 952fe3a33..e6fcaa268 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslam-existing-table.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslam-existing-table.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "test-dynamodbstreams-lambda/LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "c0d278a74ce0caf5f30e112cab591bff6a7475f50cc1db026e79a82399b14d57": { + "67c36005ca2c38d90ccfe8e1e42c77f0875dbb0f4f684edf6778ed399b2aed3d": { + "displayName": "dbslam-existing-table Template", "source": { "path": "dbslam-existing-table.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d7f64815": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c0d278a74ce0caf5f30e112cab591bff6a7475f50cc1db026e79a82399b14d57.json", + "objectKey": "67c36005ca2c38d90ccfe8e1e42c77f0875dbb0f4f684edf6778ed399b2aed3d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslam-existing-table.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslam-existing-table.template.json index 19a57e2cf..dd68858d2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslam-existing-table.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslam-existing-table.template.json @@ -168,7 +168,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslamexistingtableIntegDefaultTestDeployAssert4B659DF4.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslamexistingtableIntegDefaultTestDeployAssert4B659DF4.assets.json index 6d4a66735..1c0852a9a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslamexistingtableIntegDefaultTestDeployAssert4B659DF4.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/dbslamexistingtableIntegDefaultTestDeployAssert4B659DF4.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbslamexistingtableIntegDefaultTestDeployAssert4B659DF4 Template", "source": { "path": "dbslamexistingtableIntegDefaultTestDeployAssert4B659DF4.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/integ.json index 1a49725e0..19a3f6e9e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "dbslam-existing-table/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbslam-existing-table/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbslamexistingtableIntegDefaultTestDeployAssert4B659DF4" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/manifest.json index 2c9254979..dec060c79 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "dbslamexistingtableIntegDefaultTestDeployAssert4B659DF4.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c0d278a74ce0caf5f30e112cab591bff6a7475f50cc1db026e79a82399b14d57.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/67c36005ca2c38d90ccfe8e1e42c77f0875dbb0f4f684edf6778ed399b2aed3d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -421,7 +421,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/tree.json index 47bf181f1..c17edccf1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-existing-table.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"dbslam-existing-table":{"id":"dbslam-existing-table","path":"dbslam-existing-table","children":{"mytable":{"id":"mytable","path":"dbslam-existing-table/mytable","children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/mytable/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.186.0"}},"ScalingRole":{"id":"ScalingRole","path":"dbslam-existing-table/mytable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.186.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":true,"partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES"}]}},"test-dynamodbstreams-lambda":{"id":"test-dynamodbstreams-lambda","path":"dbslam-existing-table/test-dynamodbstreams-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"dynamodb:ListStreams","Effect":"Allow","Resource":"*"},{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":{"Fn::GetAtt":["mytable0FC8E698","StreamArn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]}}],"Version":"2012-10-17"},"policyName":"testdynamodbstreamslambdaLambdaFunctionServiceRoleDefaultPolicyC83E18AD","roles":[{"Ref":"testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testdynamodbstreamslambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B3D756F","roles":[{"Ref":"testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"DynamoDBEventSource:dbslamexistingtablemytable00A85A16":{"id":"DynamoDBEventSource:dbslamexistingtablemytable00A85A16","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/DynamoDBEventSource:dbslamexistingtablemytable00A85A16","children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/DynamoDBEventSource:dbslamexistingtablemytable00A85A16/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["mytable0FC8E698","StreamArn"]},"functionName":{"Ref":"testdynamodbstreamslambdaLambdaFunctionE18EC5EF"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":500,"startingPosition":"TRIM_HORIZON"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","eventSourceArn":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"dbslam-existing-table/test-dynamodbstreams-lambda/SqsDlqQueue","children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/SqsDlqQueue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"dbslam-existing-table/test-dynamodbstreams-lambda/SqsDlqQueue/Policy","children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/SqsDlqQueue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdynamodbstreamslambdaSqsDlqQueue183241DF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"dbslam-existing-table/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"dbslam-existing-table/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"dbslam-existing-table/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbslam-existing-table/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslam-existing-table/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslam-existing-table/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslam-existing-table/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslam-existing-table/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbslam-existing-table":{"id":"dbslam-existing-table","path":"dbslam-existing-table","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"mytable":{"id":"mytable","path":"dbslam-existing-table/mytable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":true,"partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES"}]},"children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/mytable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbslam-existing-table/mytable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"test-dynamodbstreams-lambda":{"id":"test-dynamodbstreams-lambda","path":"dbslam-existing-table/test-dynamodbstreams-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"dynamodb:ListStreams","Effect":"Allow","Resource":"*"},{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":{"Fn::GetAtt":["mytable0FC8E698","StreamArn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]}}],"Version":"2012-10-17"},"policyName":"testdynamodbstreamslambdaLambdaFunctionServiceRoleDefaultPolicyC83E18AD","roles":[{"Ref":"testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testdynamodbstreamslambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B3D756F","roles":[{"Ref":"testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1"}]}}}}},"DynamoDBEventSource:dbslamexistingtablemytable00A85A16":{"id":"DynamoDBEventSource:dbslamexistingtablemytable00A85A16","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/DynamoDBEventSource:dbslamexistingtablemytable00A85A16","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","eventSourceArn":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/LambdaFunction/DynamoDBEventSource:dbslamexistingtablemytable00A85A16/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["mytable0FC8E698","StreamArn"]},"functionName":{"Ref":"testdynamodbstreamslambdaLambdaFunctionE18EC5EF"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":500,"startingPosition":"TRIM_HORIZON"}}}}}}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"dbslam-existing-table/test-dynamodbstreams-lambda/SqsDlqQueue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/SqsDlqQueue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbslam-existing-table/test-dynamodbstreams-lambda/SqsDlqQueue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslam-existing-table/test-dynamodbstreams-lambda/SqsDlqQueue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdynamodbstreamslambdaSqsDlqQueue183241DF"}]}}}}}}}}},"Integ":{"id":"Integ","path":"dbslam-existing-table/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbslam-existing-table/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"dbslam-existing-table/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbslam-existing-table/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslam-existing-table/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslam-existing-table/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslam-existing-table/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslam-existing-table/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslam-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslam-no-arguments.assets.json index 962bf38d8..b60ae08f5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslam-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslam-no-arguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "test-dynamodbstreams-lambda/LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "bd324afaebc85247db98d3bd5e680b794067459843c2a498fddd158afd3dec00": { + "fb0a4c621390257d6422e9fce89e98f16e1e4370d9322d2cb2d7bb69d57e107e": { + "displayName": "dbslam-no-arguments Template", "source": { "path": "dbslam-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-84d33e03": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "bd324afaebc85247db98d3bd5e680b794067459843c2a498fddd158afd3dec00.json", + "objectKey": "fb0a4c621390257d6422e9fce89e98f16e1e4370d9322d2cb2d7bb69d57e107e.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslam-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslam-no-arguments.template.json index 73a81e59f..5e5440934 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslam-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslam-no-arguments.template.json @@ -132,7 +132,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslamnoargumentsIntegDefaultTestDeployAssertD933A600.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslamnoargumentsIntegDefaultTestDeployAssertD933A600.assets.json index cad0b627b..d87d25f03 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslamnoargumentsIntegDefaultTestDeployAssertD933A600.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/dbslamnoargumentsIntegDefaultTestDeployAssertD933A600.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbslamnoargumentsIntegDefaultTestDeployAssertD933A600 Template", "source": { "path": "dbslamnoargumentsIntegDefaultTestDeployAssertD933A600.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/integ.json index 2ceaeb485..22a324473 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "dbslam-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbslam-no-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbslamnoargumentsIntegDefaultTestDeployAssertD933A600" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/manifest.json index f75c53c3a..187a27959 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "dbslamnoargumentsIntegDefaultTestDeployAssertD933A600.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/bd324afaebc85247db98d3bd5e680b794067459843c2a498fddd158afd3dec00.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/fb0a4c621390257d6422e9fce89e98f16e1e4370d9322d2cb2d7bb69d57e107e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -350,12 +350,14 @@ "data": { "billingMode": "PAY_PER_REQUEST", "encryption": "AWS_MANAGED", - "pointInTimeRecovery": true, "partitionKey": { "name": "*", "type": "S" }, - "stream": "NEW_AND_OLD_IMAGES" + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } } } ], @@ -421,7 +423,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/tree.json index b0c753bb9..1ce28e7e2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.dbslam-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"dbslam-no-arguments":{"id":"dbslam-no-arguments","path":"dbslam-no-arguments","children":{"test-dynamodbstreams-lambda":{"id":"test-dynamodbstreams-lambda","path":"dbslam-no-arguments/test-dynamodbstreams-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"dynamodb:ListStreams","Effect":"Allow","Resource":"*"},{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaDynamoTable64210BF7","StreamArn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]}}],"Version":"2012-10-17"},"policyName":"testdynamodbstreamslambdaLambdaFunctionServiceRoleDefaultPolicyC83E18AD","roles":[{"Ref":"testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testdynamodbstreamslambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B3D756F","roles":[{"Ref":"testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"DynamoDBEventSource:dbslamnoargumentstestdynamodbstreamslambdaDynamoTable052A3271":{"id":"DynamoDBEventSource:dbslamnoargumentstestdynamodbstreamslambdaDynamoTable052A3271","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/DynamoDBEventSource:dbslamnoargumentstestdynamodbstreamslambdaDynamoTable052A3271","children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/DynamoDBEventSource:dbslamnoargumentstestdynamodbstreamslambdaDynamoTable052A3271/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testdynamodbstreamslambdaDynamoTable64210BF7","StreamArn"]},"functionName":{"Ref":"testdynamodbstreamslambdaLambdaFunctionE18EC5EF"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":5,"startingPosition":"TRIM_HORIZON"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","eventSourceArn":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"DynamoTable":{"id":"DynamoTable","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/DynamoTable","children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/DynamoTable/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.186.0"}},"ScalingRole":{"id":"ScalingRole","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.186.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":true,"partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES"}]}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/SqsDlqQueue","children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/SqsDlqQueue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/SqsDlqQueue/Policy","children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/SqsDlqQueue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdynamodbstreamslambdaSqsDlqQueue183241DF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"dbslam-no-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"dbslam-no-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"dbslam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbslam-no-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbslam-no-arguments":{"id":"dbslam-no-arguments","path":"dbslam-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-dynamodbstreams-lambda":{"id":"test-dynamodbstreams-lambda","path":"dbslam-no-arguments/test-dynamodbstreams-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"dynamodb:ListStreams","Effect":"Allow","Resource":"*"},{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaDynamoTable64210BF7","StreamArn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]}}],"Version":"2012-10-17"},"policyName":"testdynamodbstreamslambdaLambdaFunctionServiceRoleDefaultPolicyC83E18AD","roles":[{"Ref":"testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testdynamodbstreamslambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B3D756F","roles":[{"Ref":"testdynamodbstreamslambdaLambdaFunctionServiceRole17CB5CA1"}]}}}}},"DynamoDBEventSource:dbslamnoargumentstestdynamodbstreamslambdaDynamoTable052A3271":{"id":"DynamoDBEventSource:dbslamnoargumentstestdynamodbstreamslambdaDynamoTable052A3271","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/DynamoDBEventSource:dbslamnoargumentstestdynamodbstreamslambdaDynamoTable052A3271","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","eventSourceArn":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/LambdaFunction/DynamoDBEventSource:dbslamnoargumentstestdynamodbstreamslambdaDynamoTable052A3271/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testdynamodbstreamslambdaDynamoTable64210BF7","StreamArn"]},"functionName":{"Ref":"testdynamodbstreamslambdaLambdaFunctionE18EC5EF"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":5,"startingPosition":"TRIM_HORIZON"}}}}}}},"DynamoTable":{"id":"DynamoTable","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/SqsDlqQueue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/SqsDlqQueue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/SqsDlqQueue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbslam-no-arguments/test-dynamodbstreams-lambda/SqsDlqQueue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdynamodbstreamslambdaSqsDlqQueue183241DF","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdynamodbstreamslambdaSqsDlqQueue183241DF"}]}}}}}}}}},"Integ":{"id":"Integ","path":"dbslam-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbslam-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"dbslam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbslam-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbslam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbslam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/dynamodbstreams-pipes-stepfunctions.test.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/dynamodbstreams-pipes-stepfunctions.test.ts index 817935137..a7f7e1a7e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/dynamodbstreams-pipes-stepfunctions.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/dynamodbstreams-pipes-stepfunctions.test.ts @@ -465,7 +465,7 @@ test('test state machine enrichment', () => { test('Test lambda function enrichment', () => { const stack = new Stack(); const enrichmentFunction = new lambda.Function(stack, 'enrichment-function', { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', code: lambda.Code.fromInline(`exports.handler = async (event) => {return;}`) }); diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstp-custom-log-level.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstp-custom-log-level.assets.json index c0cb2f993..53a3306cc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstp-custom-log-level.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstp-custom-log-level.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "e08b3d3b83e0a1ee4dfd63c3dd630e7a64ac8f702b4be37e66a42a260cfb58fe": { + "e2b789693ff076f6969eb7494806564774eab7f5f9e2622c15617b29cc58701a": { + "displayName": "dbspstp-custom-log-level Template", "source": { "path": "dbspstp-custom-log-level.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d2998ba5": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "e08b3d3b83e0a1ee4dfd63c3dd630e7a64ac8f702b4be37e66a42a260cfb58fe.json", + "objectKey": "e2b789693ff076f6969eb7494806564774eab7f5f9e2622c15617b29cc58701a.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstp-custom-log-level.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstp-custom-log-level.template.json index ef4081396..e57073c7b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstp-custom-log-level.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstp-custom-log-level.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdadbsstptestServiceRole4515C09E" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstpcustomloglevelIntegDefaultTestDeployAssert8DE150AA.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstpcustomloglevelIntegDefaultTestDeployAssert8DE150AA.assets.json index 1e8cd6b93..8a4dac8a4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstpcustomloglevelIntegDefaultTestDeployAssert8DE150AA.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/dbspstpcustomloglevelIntegDefaultTestDeployAssert8DE150AA.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstpcustomloglevelIntegDefaultTestDeployAssert8DE150AA Template", "source": { "path": "dbspstpcustomloglevelIntegDefaultTestDeployAssert8DE150AA.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/integ.json index 7b4720884..a48cea9ce 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-custom-log-level/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-custom-log-level/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstpcustomloglevelIntegDefaultTestDeployAssert8DE150AA" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/manifest.json index b3d0af3cb..296b2869e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstpcustomloglevelIntegDefaultTestDeployAssert8DE150AA.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstpcustomloglevelIntegDefaultTestDeployAssert8DE150AA.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-custom-log-level.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e08b3d3b83e0a1ee4dfd63c3dd630e7a64ac8f702b4be37e66a42a260cfb58fe.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e2b789693ff076f6969eb7494806564774eab7f5f9e2622c15617b29cc58701a.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-custom-log-level.assets" ], "metadata": { + "/dbspstp-custom-log-level/lambdadbsstp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-custom-log-level/lambdadbsstp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-custom-log-level/lambdadbsstp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-custom-log-level/lambdadbsstp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,24 +126,171 @@ "data": "lambdadbsstptestE56C39A8" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructDynamoTable5457FA02" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineLogGroup1E17AD86" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineRole802AA550" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -126,42 +303,132 @@ "data": "testdbspipesstatesconstructStateMachine9909327F" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionFailedAlarm6678470E" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionThrottledAlarm0286BB10" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionAbortedAlarmF4C945F2" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqF765E6A0" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqPolicyB08573AE" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C" } ], + "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-custom-log-level/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -194,6 +461,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/tree.json index d59e109e8..2c5365c9e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-custom-log-level.js.snapshot/tree.json @@ -1,912 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-custom-log-level": { - "id": "dbspstp-custom-log-level", - "path": "dbspstp-custom-log-level", - "children": { - "lambdadbsstp-test": { - "id": "lambdadbsstp-test", - "path": "dbspstp-custom-log-level/lambdadbsstp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-custom-log-level/lambdadbsstp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-custom-log-level/lambdadbsstp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/lambdadbsstp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/lambdadbsstp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdadbsstptestServiceRole4515C09E", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "taskdbsstp-test": { - "id": "taskdbsstp-test", - "path": "dbspstp-custom-log-level/taskdbsstp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-dbs-pipes-states-construct": { - "id": "test-dbs-pipes-states-construct", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-custom-log-leveltest-dbs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49", - "roles": [ - { - "Ref": "testdbspipesstatesconstructStateMachineRole802AA550" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineLogGroup1E17AD86", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineRole802AA550", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testdbspipesstatesconstructdlqF765E6A0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-dbs-pipes-states-construct": { - "id": "PipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct", - "children": { - "ImportPipeRole--test-dbs-pipes-states-construct": { - "id": "ImportPipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "LogGroup-test-dbs-pipes-states-construct": { - "id": "LogGroup-test-dbs-pipes-states-construct", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-custom-log-leveltest-dbs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-dbs-pipes-states-construct": { - "id": "pipe-test-dbs-pipes-states-construct", - "path": "dbspstp-custom-log-level/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F", - "Arn" - ] - } - }, - "level": "TRACE" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "startingPosition": "LATEST", - "maximumRetryAttempts": 3, - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-custom-log-level/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-custom-log-level/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-custom-log-level/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-custom-log-level/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-custom-log-level/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-custom-log-level/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-custom-log-level/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-custom-log-level/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-custom-log-level":{"id":"dbspstp-custom-log-level","path":"dbspstp-custom-log-level","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdadbsstp-test":{"id":"lambdadbsstp-test","path":"dbspstp-custom-log-level/lambdadbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-custom-log-level/lambdadbsstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-custom-log-level/lambdadbsstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/lambdadbsstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/lambdadbsstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdadbsstptestServiceRole4515C09E","Arn"]},"runtime":"nodejs22.x"}}}}},"taskdbsstp-test":{"id":"taskdbsstp-test","path":"dbspstp-custom-log-level/taskdbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-dbs-pipes-states-construct":{"id":"test-dbs-pipes-states-construct","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-custom-log-leveltest-dbs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49","roles":[{"Ref":"testdbspipesstatesconstructStateMachineRole802AA550"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineLogGroup1E17AD86","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineRole802AA550","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"dlq":{"id":"dlq","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdbspipesstatesconstructdlqF765E6A0"}]}}}}}}},"PipeRole--test-dbs-pipes-states-construct":{"id":"PipeRole--test-dbs-pipes-states-construct","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-dbs-pipes-states-construct":{"id":"ImportPipeRole--test-dbs-pipes-states-construct","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-dbs-pipes-states-construct":{"id":"LogGroup-test-dbs-pipes-states-construct","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-custom-log-leveltest-dbs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-dbs-pipes-states-construct":{"id":"pipe-test-dbs-pipes-states-construct","path":"dbspstp-custom-log-level/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F","Arn"]}},"level":"TRACE"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C","Arn"]},"source":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"startingPosition":"LATEST","maximumRetryAttempts":3,"deadLetterConfig":{"arn":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}}},"target":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-custom-log-level/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-custom-log-level/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-custom-log-level/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-custom-log-level/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-custom-log-level/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-custom-log-level/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-custom-log-level/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-custom-log-level/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstp-existing-state-machine.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstp-existing-state-machine.assets.json index c2fd4740e..56ea7c691 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstp-existing-state-machine.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstp-existing-state-machine.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "c4c50147e5bb7bc2be0d81507bdbe1b827dd1c8e3eac870ee7d59c4eaf4c2b32": { + "daa269ca6a3446a51e4d3811989f5c3bb83a7a033ef4273e2e546b786769a6a0": { + "displayName": "dbspstp-existing-state-machine Template", "source": { "path": "dbspstp-existing-state-machine.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-4f597685": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c4c50147e5bb7bc2be0d81507bdbe1b827dd1c8e3eac870ee7d59c4eaf4c2b32.json", + "objectKey": "daa269ca6a3446a51e4d3811989f5c3bb83a7a033ef4273e2e546b786769a6a0.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstp-existing-state-machine.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstp-existing-state-machine.template.json index 6040ce77e..5c356f90f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstp-existing-state-machine.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstp-existing-state-machine.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdadbsstpteststatemachineServiceRoleC5D3726D" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstpexistingstatemachineIntegDefaultTestDeployAssert3C3118B7.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstpexistingstatemachineIntegDefaultTestDeployAssert3C3118B7.assets.json index 247c57c5d..ad30dbdc4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstpexistingstatemachineIntegDefaultTestDeployAssert3C3118B7.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/dbspstpexistingstatemachineIntegDefaultTestDeployAssert3C3118B7.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstpexistingstatemachineIntegDefaultTestDeployAssert3C3118B7 Template", "source": { "path": "dbspstpexistingstatemachineIntegDefaultTestDeployAssert3C3118B7.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/integ.json index 27d0a351e..3019ad0ac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-existing-state-machine/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-existing-state-machine/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstpexistingstatemachineIntegDefaultTestDeployAssert3C3118B7" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/manifest.json index 9aa9270b6..527aa268a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstpexistingstatemachineIntegDefaultTestDeployAssert3C3118B7.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstpexistingstatemachineIntegDefaultTestDeployAssert3C3118B7.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-existing-state-machine.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c4c50147e5bb7bc2be0d81507bdbe1b827dd1c8e3eac870ee7d59c4eaf4c2b32.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/daa269ca6a3446a51e4d3811989f5c3bb83a7a033ef4273e2e546b786769a6a0.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-existing-state-machine.assets" ], "metadata": { + "/dbspstp-existing-state-machine/lambdadbsstp-test-state-machine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,12 +126,99 @@ "data": "lambdadbsstpteststatemachine3BB0B3E0" } ], + "/dbspstp-existing-state-machine/dbsstp-test-state-machine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-existing-state-machine/dbsstp-test-state-machine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "dbsstpteststatemachineRole41CB13EC" } ], + "/dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -114,30 +231,98 @@ "data": "dbsstpteststatemachine94317E1F" } ], + "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructDynamoTable5457FA02" } ], + "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqF765E6A0" } ], + "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqPolicyB08573AE" } ], + "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C" } ], + "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-existing-state-machine/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -170,6 +355,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/tree.json index 681a73df1..ec4a53e7c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-state-machine.js.snapshot/tree.json @@ -1,722 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-existing-state-machine": { - "id": "dbspstp-existing-state-machine", - "path": "dbspstp-existing-state-machine", - "children": { - "lambdadbsstp-test-state-machine": { - "id": "lambdadbsstp-test-state-machine", - "path": "dbspstp-existing-state-machine/lambdadbsstp-test-state-machine", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdadbsstpteststatemachineServiceRoleC5D3726D", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "taskdbsstp-test-state-machine": { - "id": "taskdbsstp-test-state-machine", - "path": "dbspstp-existing-state-machine/taskdbsstp-test-state-machine", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "dbsstp-test-state-machine": { - "id": "dbsstp-test-state-machine", - "path": "dbspstp-existing-state-machine/dbsstp-test-state-machine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-existing-state-machine/dbsstp-test-state-machine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdadbsstpteststatemachine3BB0B3E0", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdadbsstpteststatemachine3BB0B3E0", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - } - ], - "Version": "2012-10-17" - }, - "policyName": "dbsstpteststatemachineRoleDefaultPolicy4870B679", - "roles": [ - { - "Ref": "dbsstpteststatemachineRole41CB13EC" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/dbsstp-test-state-machine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"taskdbsstp-test-state-machine\",\"States\":{\"taskdbsstp-test-state-machine\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdadbsstpteststatemachine3BB0B3E0", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "roleArn": { - "Fn::GetAtt": [ - "dbsstpteststatemachineRole41CB13EC", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "test-dbs-pipes-states-construct": { - "id": "test-dbs-pipes-states-construct", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testdbspipesstatesconstructdlqF765E6A0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-dbs-pipes-states-construct": { - "id": "PipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct", - "children": { - "ImportPipeRole--test-dbs-pipes-states-construct": { - "id": "ImportPipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "dbsstpteststatemachine94317E1F" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "LogGroup-test-dbs-pipes-states-construct": { - "id": "LogGroup-test-dbs-pipes-states-construct", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-existing-state-machinetest-dbs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-dbs-pipes-states-construct": { - "id": "pipe-test-dbs-pipes-states-construct", - "path": "dbspstp-existing-state-machine/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "startingPosition": "LATEST", - "maximumRetryAttempts": 3, - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "dbsstpteststatemachine94317E1F" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-existing-state-machine/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-existing-state-machine/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-existing-state-machine/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-existing-state-machine/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-existing-state-machine/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-existing-state-machine/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-existing-state-machine/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-existing-state-machine/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-existing-state-machine":{"id":"dbspstp-existing-state-machine","path":"dbspstp-existing-state-machine","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdadbsstp-test-state-machine":{"id":"lambdadbsstp-test-state-machine","path":"dbspstp-existing-state-machine/lambdadbsstp-test-state-machine","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/lambdadbsstp-test-state-machine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdadbsstpteststatemachineServiceRoleC5D3726D","Arn"]},"runtime":"nodejs22.x"}}}}},"taskdbsstp-test-state-machine":{"id":"taskdbsstp-test-state-machine","path":"dbspstp-existing-state-machine/taskdbsstp-test-state-machine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"dbsstp-test-state-machine":{"id":"dbsstp-test-state-machine","path":"dbspstp-existing-state-machine/dbsstp-test-state-machine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"definitionBody":"*"},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-existing-state-machine/dbsstp-test-state-machine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/dbsstp-test-state-machine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdadbsstpteststatemachine3BB0B3E0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdadbsstpteststatemachine3BB0B3E0","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"dbsstpteststatemachineRoleDefaultPolicy4870B679","roles":[{"Ref":"dbsstpteststatemachineRole41CB13EC"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/dbsstp-test-state-machine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskdbsstp-test-state-machine\",\"States\":{\"taskdbsstp-test-state-machine\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdadbsstpteststatemachine3BB0B3E0","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"roleArn":{"Fn::GetAtt":["dbsstpteststatemachineRole41CB13EC","Arn"]}}}}}},"test-dbs-pipes-states-construct":{"id":"test-dbs-pipes-states-construct","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"dlq":{"id":"dlq","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdbspipesstatesconstructdlqF765E6A0"}]}}}}}}},"PipeRole--test-dbs-pipes-states-construct":{"id":"PipeRole--test-dbs-pipes-states-construct","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-dbs-pipes-states-construct":{"id":"ImportPipeRole--test-dbs-pipes-states-construct","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"dbsstpteststatemachine94317E1F"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-dbs-pipes-states-construct":{"id":"LogGroup-test-dbs-pipes-states-construct","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-existing-state-machinetest-dbs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-dbs-pipes-states-construct":{"id":"pipe-test-dbs-pipes-states-construct","path":"dbspstp-existing-state-machine/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C","Arn"]},"source":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"startingPosition":"LATEST","maximumRetryAttempts":3,"deadLetterConfig":{"arn":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}}},"target":{"Ref":"dbsstpteststatemachine94317E1F"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-existing-state-machine/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-existing-state-machine/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-existing-state-machine/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-existing-state-machine/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-existing-state-machine/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-existing-state-machine/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-existing-state-machine/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-existing-state-machine/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstp-existing-table.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstp-existing-table.assets.json index 59c34d24a..6f747d93f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstp-existing-table.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstp-existing-table.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "fc190c230e983251c0155f9e961881f2dc95d1b834b8262d18aae060d9a7ff46": { + "6c55d1f85a8b2a8d55d0d0cc999b274fc25b6c2f3ba16f2e0b8cc0ef88e7893b": { + "displayName": "dbspstp-existing-table Template", "source": { "path": "dbspstp-existing-table.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-34b0e643": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "fc190c230e983251c0155f9e961881f2dc95d1b834b8262d18aae060d9a7ff46.json", + "objectKey": "6c55d1f85a8b2a8d55d0d0cc999b274fc25b6c2f3ba16f2e0b8cc0ef88e7893b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstp-existing-table.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstp-existing-table.template.json index 4f42cd344..f27597e40 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstp-existing-table.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstp-existing-table.template.json @@ -80,7 +80,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdadbsstptestServiceRole4515C09E" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstpexistingtableIntegDefaultTestDeployAssert512B3A26.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstpexistingtableIntegDefaultTestDeployAssert512B3A26.assets.json index 668502c5e..711fe8bee 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstpexistingtableIntegDefaultTestDeployAssert512B3A26.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/dbspstpexistingtableIntegDefaultTestDeployAssert512B3A26.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstpexistingtableIntegDefaultTestDeployAssert512B3A26 Template", "source": { "path": "dbspstpexistingtableIntegDefaultTestDeployAssert512B3A26.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/integ.json index 615c28f74..5140666a2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-existing-table/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-existing-table/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstpexistingtableIntegDefaultTestDeployAssert512B3A26" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/manifest.json index b25edab3d..0771fd2c2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstpexistingtableIntegDefaultTestDeployAssert512B3A26.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstpexistingtableIntegDefaultTestDeployAssert512B3A26.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-existing-table.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/fc190c230e983251c0155f9e961881f2dc95d1b834b8262d18aae060d9a7ff46.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6c55d1f85a8b2a8d55d0d0cc999b274fc25b6c2f3ba16f2e0b8cc0ef88e7893b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,12 +82,65 @@ "dbspstp-existing-table.assets" ], "metadata": { + "/dbspstp-existing-table/table": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "pointInTimeRecovery": true + } + } + ], "/dbspstp-existing-table/table/Resource": [ { "type": "aws:cdk:logicalId", "data": "table8235A42E" } ], + "/dbspstp-existing-table/table/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-existing-table/lambdadbsstp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-existing-table/lambdadbsstp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-existing-table/lambdadbsstp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-existing-table/lambdadbsstp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -102,18 +153,142 @@ "data": "lambdadbsstptestE56C39A8" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineLogGroup1E17AD86" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineRole802AA550" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -126,42 +301,132 @@ "data": "testdbspipesstatesconstructStateMachine9909327F" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionFailedAlarm6678470E" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionThrottledAlarm0286BB10" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionAbortedAlarmF4C945F2" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqF765E6A0" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqPolicyB08573AE" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C" } ], + "/dbspstp-existing-table/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-existing-table/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -194,6 +459,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/tree.json index 6a3c9b560..782fa3b60 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-existing-table.js.snapshot/tree.json @@ -1,912 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-existing-table": { - "id": "dbspstp-existing-table", - "path": "dbspstp-existing-table", - "children": { - "table": { - "id": "table", - "path": "dbspstp-existing-table/table", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/table/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-existing-table/table/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "lambdadbsstp-test": { - "id": "lambdadbsstp-test", - "path": "dbspstp-existing-table/lambdadbsstp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-existing-table/lambdadbsstp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-existing-table/lambdadbsstp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/lambdadbsstp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/lambdadbsstp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdadbsstptestServiceRole4515C09E", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "taskdbsstp-test": { - "id": "taskdbsstp-test", - "path": "dbspstp-existing-table/taskdbsstp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-dbs-pipes-states-construct": { - "id": "test-dbs-pipes-states-construct", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct", - "children": { - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-existing-tabletest-dbs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49", - "roles": [ - { - "Ref": "testdbspipesstatesconstructStateMachineRole802AA550" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineLogGroup1E17AD86", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineRole802AA550", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testdbspipesstatesconstructdlqF765E6A0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-dbs-pipes-states-construct": { - "id": "PipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct", - "children": { - "ImportPipeRole--test-dbs-pipes-states-construct": { - "id": "ImportPipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "table8235A42E", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "LogGroup-test-dbs-pipes-states-construct": { - "id": "LogGroup-test-dbs-pipes-states-construct", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-existing-tabletest-dbs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-dbs-pipes-states-construct": { - "id": "pipe-test-dbs-pipes-states-construct", - "path": "dbspstp-existing-table/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "table8235A42E", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "startingPosition": "LATEST", - "maximumRetryAttempts": 3, - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-existing-table/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-existing-table/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-existing-table/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-existing-table/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-existing-table/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-existing-table/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-existing-table/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-existing-table/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-existing-table":{"id":"dbspstp-existing-table","path":"dbspstp-existing-table","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"table":{"id":"table","path":"dbspstp-existing-table/table","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":true}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-table/table/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-existing-table/table/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"lambdadbsstp-test":{"id":"lambdadbsstp-test","path":"dbspstp-existing-table/lambdadbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-existing-table/lambdadbsstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-existing-table/lambdadbsstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-existing-table/lambdadbsstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-existing-table/lambdadbsstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdadbsstptestServiceRole4515C09E","Arn"]},"runtime":"nodejs22.x"}}}}},"taskdbsstp-test":{"id":"taskdbsstp-test","path":"dbspstp-existing-table/taskdbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-dbs-pipes-states-construct":{"id":"test-dbs-pipes-states-construct","path":"dbspstp-existing-table/test-dbs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-existing-tabletest-dbs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49","roles":[{"Ref":"testdbspipesstatesconstructStateMachineRole802AA550"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineLogGroup1E17AD86","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineRole802AA550","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"dlq":{"id":"dlq","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdbspipesstatesconstructdlqF765E6A0"}]}}}}}}},"PipeRole--test-dbs-pipes-states-construct":{"id":"PipeRole--test-dbs-pipes-states-construct","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-dbs-pipes-states-construct":{"id":"ImportPipeRole--test-dbs-pipes-states-construct","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["table8235A42E","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-dbs-pipes-states-construct":{"id":"LogGroup-test-dbs-pipes-states-construct","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-existing-tabletest-dbs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-dbs-pipes-states-construct":{"id":"pipe-test-dbs-pipes-states-construct","path":"dbspstp-existing-table/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C","Arn"]},"source":{"Fn::GetAtt":["table8235A42E","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"startingPosition":"LATEST","maximumRetryAttempts":3,"deadLetterConfig":{"arn":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}}},"target":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-existing-table/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-existing-table/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-existing-table/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-existing-table/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-existing-table/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-existing-table/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-existing-table/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-existing-table/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstp-filter.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstp-filter.assets.json index 48e6793ca..0b568173c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstp-filter.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstp-filter.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "2781742526675c52553353fbb90ecd8275bbfd15d16ed9106edf52a855fc7973": { + "e2b95f190307981663214d49bb672e9a4d076dc135582260f4d3be5dd906e603": { + "displayName": "dbspstp-filter Template", "source": { "path": "dbspstp-filter.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-a52fceb9": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "2781742526675c52553353fbb90ecd8275bbfd15d16ed9106edf52a855fc7973.json", + "objectKey": "e2b95f190307981663214d49bb672e9a4d076dc135582260f4d3be5dd906e603.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstp-filter.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstp-filter.template.json index 5c1436345..02bae2e61 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstp-filter.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstp-filter.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdadbsstptestServiceRole4515C09E" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstpfilterIntegDefaultTestDeployAssert5FF6F7CB.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstpfilterIntegDefaultTestDeployAssert5FF6F7CB.assets.json index 7d67cd6fa..11b7383c6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstpfilterIntegDefaultTestDeployAssert5FF6F7CB.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/dbspstpfilterIntegDefaultTestDeployAssert5FF6F7CB.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstpfilterIntegDefaultTestDeployAssert5FF6F7CB Template", "source": { "path": "dbspstpfilterIntegDefaultTestDeployAssert5FF6F7CB.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/integ.json index e1a34da26..09ced3414 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-filter/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-filter/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstpfilterIntegDefaultTestDeployAssert5FF6F7CB" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/manifest.json index 914973312..02b2629a2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstpfilterIntegDefaultTestDeployAssert5FF6F7CB.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstpfilterIntegDefaultTestDeployAssert5FF6F7CB.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-filter.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2781742526675c52553353fbb90ecd8275bbfd15d16ed9106edf52a855fc7973.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e2b95f190307981663214d49bb672e9a4d076dc135582260f4d3be5dd906e603.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-filter.assets" ], "metadata": { + "/dbspstp-filter/lambdadbsstp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-filter/lambdadbsstp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-filter/lambdadbsstp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-filter/lambdadbsstp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,24 +126,171 @@ "data": "lambdadbsstptestE56C39A8" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructDynamoTable5457FA02" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-filter/test-dbs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineLogGroup1E17AD86" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineRole802AA550" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -126,42 +303,132 @@ "data": "testdbspipesstatesconstructStateMachine9909327F" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionFailedAlarm6678470E" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionThrottledAlarm0286BB10" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionAbortedAlarmF4C945F2" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqF765E6A0" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqPolicyB08573AE" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/dbspstp-filter/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C" } ], + "/dbspstp-filter/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-filter/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -194,6 +461,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/tree.json index dd2d8cb4a..cfcd3da28 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-filter.js.snapshot/tree.json @@ -1,919 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-filter": { - "id": "dbspstp-filter", - "path": "dbspstp-filter", - "children": { - "lambdadbsstp-test": { - "id": "lambdadbsstp-test", - "path": "dbspstp-filter/lambdadbsstp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-filter/lambdadbsstp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-filter/lambdadbsstp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/lambdadbsstp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/lambdadbsstp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdadbsstptestServiceRole4515C09E", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "taskdbsstp-test": { - "id": "taskdbsstp-test", - "path": "dbspstp-filter/taskdbsstp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-dbs-pipes-states-construct": { - "id": "test-dbs-pipes-states-construct", - "path": "dbspstp-filter/test-dbs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-filtertest-dbs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49", - "roles": [ - { - "Ref": "testdbspipesstatesconstructStateMachineRole802AA550" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineLogGroup1E17AD86", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineRole802AA550", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testdbspipesstatesconstructdlqF765E6A0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-dbs-pipes-states-construct": { - "id": "PipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct", - "children": { - "ImportPipeRole--test-dbs-pipes-states-construct": { - "id": "ImportPipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "LogGroup-test-dbs-pipes-states-construct": { - "id": "LogGroup-test-dbs-pipes-states-construct", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-filtertest-dbs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-dbs-pipes-states-construct": { - "id": "pipe-test-dbs-pipes-states-construct", - "path": "dbspstp-filter/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - }, - "sourceParameters": { - "filterCriteria": { - "filters": [ - { - "pattern": "{\n \"dynamodb\": {\n \"NewImage\": {\n \"state\": { \"S\": [\"open\"] }\n }\n }\n}" - } - ] - }, - "dynamoDbStreamParameters": { - "startingPosition": "LATEST", - "maximumRetryAttempts": 3, - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-filter/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-filter/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-filter/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-filter/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-filter/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-filter/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-filter/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-filter/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-filter":{"id":"dbspstp-filter","path":"dbspstp-filter","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdadbsstp-test":{"id":"lambdadbsstp-test","path":"dbspstp-filter/lambdadbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-filter/lambdadbsstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-filter/lambdadbsstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-filter/lambdadbsstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-filter/lambdadbsstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdadbsstptestServiceRole4515C09E","Arn"]},"runtime":"nodejs22.x"}}}}},"taskdbsstp-test":{"id":"taskdbsstp-test","path":"dbspstp-filter/taskdbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-dbs-pipes-states-construct":{"id":"test-dbs-pipes-states-construct","path":"dbspstp-filter/test-dbs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-filter/test-dbs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-filter/test-dbs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-filter/test-dbs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-filtertest-dbs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-filter/test-dbs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49","roles":[{"Ref":"testdbspipesstatesconstructStateMachineRole802AA550"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineLogGroup1E17AD86","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineRole802AA550","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-filter/test-dbs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-filter/test-dbs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-filter/test-dbs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"dlq":{"id":"dlq","path":"dbspstp-filter/test-dbs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-filter/test-dbs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdbspipesstatesconstructdlqF765E6A0"}]}}}}}}},"PipeRole--test-dbs-pipes-states-construct":{"id":"PipeRole--test-dbs-pipes-states-construct","path":"dbspstp-filter/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-dbs-pipes-states-construct":{"id":"ImportPipeRole--test-dbs-pipes-states-construct","path":"dbspstp-filter/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-dbs-pipes-states-construct":{"id":"LogGroup-test-dbs-pipes-states-construct","path":"dbspstp-filter/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-filter/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-filtertest-dbs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-dbs-pipes-states-construct":{"id":"pipe-test-dbs-pipes-states-construct","path":"dbspstp-filter/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C","Arn"]},"source":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]},"sourceParameters":{"filterCriteria":{"filters":[{"pattern":"{\n \"dynamodb\": {\n \"NewImage\": {\n \"state\": { \"S\": [\"open\"] }\n }\n }\n}"}]},"dynamoDbStreamParameters":{"startingPosition":"LATEST","maximumRetryAttempts":3,"deadLetterConfig":{"arn":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}}},"target":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-filter/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-filter/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-filter/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-filter/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-filter/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-filter/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-filter/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-filter/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/asset.b2acf8c9fc806153dd62e2f9c3fd5d6042e7764d4584e06403b29a8b863d0bac/index.js b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/asset.b2acf8c9fc806153dd62e2f9c3fd5d6042e7764d4584e06403b29a8b863d0bac/index.js new file mode 100644 index 000000000..68532199d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/asset.b2acf8c9fc806153dd62e2f9c3fd5d6042e7764d4584e06403b29a8b863d0bac/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event) => { + console.log(event); + const response = event.map((x) =>{ + x.newAttrib = "content"; + return x; + }); + return response; +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstp-lambda-function-enrichment.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstp-lambda-function-enrichment.assets.json index 0b8b56bdf..bf033a3bd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstp-lambda-function-enrichment.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstp-lambda-function-enrichment.assets.json @@ -1,28 +1,30 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "b2acf8c9fc806153dd62e2f9c3fd5d6042e7764d4584e06403b29a8b863d0bac": { + "displayName": "enrichment-function/Code", "source": { "path": "asset.b2acf8c9fc806153dd62e2f9c3fd5d6042e7764d4584e06403b29a8b863d0bac", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-03aa6700": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "b2acf8c9fc806153dd62e2f9c3fd5d6042e7764d4584e06403b29a8b863d0bac.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "0eb5dfa4e7d186e1c36d51eefa8b6f155d8786ab1e73dfed34da54c5e192dbd2": { + "a839b6c736301dc546ebc157f0abffe32f26fdf41df9120b4c1142e5d9454b84": { + "displayName": "dbspstp-lambda-function-enrichment Template", "source": { "path": "dbspstp-lambda-function-enrichment.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-dca6961c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0eb5dfa4e7d186e1c36d51eefa8b6f155d8786ab1e73dfed34da54c5e192dbd2.json", + "objectKey": "a839b6c736301dc546ebc157f0abffe32f26fdf41df9120b4c1142e5d9454b84.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstp-lambda-function-enrichment.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstp-lambda-function-enrichment.template.json index bb8f937c3..1742eb661 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstp-lambda-function-enrichment.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstp-lambda-function-enrichment.template.json @@ -47,7 +47,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "enrichmentfunctionServiceRoleF21A0515" @@ -115,7 +115,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdadbsstptestServiceRole4515C09E" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstplambdafunctionenrichmentIntegDefaultTestDeployAssertE09AE064.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstplambdafunctionenrichmentIntegDefaultTestDeployAssertE09AE064.assets.json index 32b50c0f8..1720994d4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstplambdafunctionenrichmentIntegDefaultTestDeployAssertE09AE064.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/dbspstplambdafunctionenrichmentIntegDefaultTestDeployAssertE09AE064.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstplambdafunctionenrichmentIntegDefaultTestDeployAssertE09AE064 Template", "source": { "path": "dbspstplambdafunctionenrichmentIntegDefaultTestDeployAssertE09AE064.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/integ.json index ec555d48c..c304c3dae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-lambda-function-enrichment/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstplambdafunctionenrichmentIntegDefaultTestDeployAssertE09AE064" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/manifest.json index 571ce94d8..c371c05a0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstplambdafunctionenrichmentIntegDefaultTestDeployAssertE09AE064.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstplambdafunctionenrichmentIntegDefaultTestDeployAssertE09AE064.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-lambda-function-enrichment.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0eb5dfa4e7d186e1c36d51eefa8b6f155d8786ab1e73dfed34da54c5e192dbd2.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a839b6c736301dc546ebc157f0abffe32f26fdf41df9120b4c1142e5d9454b84.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-lambda-function-enrichment.assets" ], "metadata": { + "/dbspstp-lambda-function-enrichment/enrichment-function": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "runtime": "*", + "handler": "*", + "code": "*" + } + } + ], + "/dbspstp-lambda-function-enrichment/enrichment-function/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-lambda-function-enrichment/enrichment-function/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-lambda-function-enrichment/enrichment-function/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,6 +126,38 @@ "data": "enrichmentfunction84C1BE72" } ], + "/dbspstp-lambda-function-enrichment/lambdadbsstp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-lambda-function-enrichment/lambdadbsstp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-lambda-function-enrichment/lambdadbsstp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-lambda-function-enrichment/lambdadbsstp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -108,24 +170,171 @@ "data": "lambdadbsstptestE56C39A8" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructDynamoTable5457FA02" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineLogGroup1E17AD86" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineRole802AA550" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -138,48 +347,186 @@ "data": "testdbspipesstatesconstructStateMachine9909327F" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionFailedAlarm6678470E" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionThrottledAlarm0286BB10" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionAbortedAlarmF4C945F2" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqF765E6A0" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqPolicyB08573AE" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructenrichmentpolicytestdbspipesstatesconstruct28034D11" } ], + "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -212,6 +559,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/tree.json index 574c0e7ea..b03f2f7d0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-lambda-function-enrichment.js.snapshot/tree.json @@ -1,1082 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-lambda-function-enrichment": { - "id": "dbspstp-lambda-function-enrichment", - "path": "dbspstp-lambda-function-enrichment", - "children": { - "enrichment-function": { - "id": "enrichment-function", - "path": "dbspstp-lambda-function-enrichment/enrichment-function", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-lambda-function-enrichment/enrichment-function/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-lambda-function-enrichment/enrichment-function/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/enrichment-function/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Code": { - "id": "Code", - "path": "dbspstp-lambda-function-enrichment/enrichment-function/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "dbspstp-lambda-function-enrichment/enrichment-function/Code/Stage", - "constructInfo": { - "fqn": "aws-cdk-lib.AssetStaging", - "version": "2.163.1" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "dbspstp-lambda-function-enrichment/enrichment-function/Code/AssetBucket", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_s3.BucketBase", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_s3_assets.Asset", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/enrichment-function/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "b2acf8c9fc806153dd62e2f9c3fd5d6042e7764d4584e06403b29a8b863d0bac.zip" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "enrichmentfunctionServiceRoleF21A0515", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "lambdadbsstp-test": { - "id": "lambdadbsstp-test", - "path": "dbspstp-lambda-function-enrichment/lambdadbsstp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-lambda-function-enrichment/lambdadbsstp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-lambda-function-enrichment/lambdadbsstp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/lambdadbsstp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/lambdadbsstp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdadbsstptestServiceRole4515C09E", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "taskdbsstp-test": { - "id": "taskdbsstp-test", - "path": "dbspstp-lambda-function-enrichment/taskdbsstp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-dbs-pipes-states-construct": { - "id": "test-dbs-pipes-states-construct", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-lambda-function-enrichmenttest-dbs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49", - "roles": [ - { - "Ref": "testdbspipesstatesconstructStateMachineRole802AA550" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineLogGroup1E17AD86", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineRole802AA550", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testdbspipesstatesconstructdlqF765E6A0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-dbs-pipes-states-construct": { - "id": "PipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct", - "children": { - "ImportPipeRole--test-dbs-pipes-states-construct": { - "id": "ImportPipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "enrichmentpolicytest-dbs-pipes-states-construct": { - "id": "enrichmentpolicytest-dbs-pipes-states-construct", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "enrichmentfunction84C1BE72", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "testdbspipesstatesconstructenrichmentpolicytestdbspipesstatesconstruct28034D11", - "roles": [ - { - "Ref": "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - }, - "LogGroup-test-dbs-pipes-states-construct": { - "id": "LogGroup-test-dbs-pipes-states-construct", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-lambda-function-enrichmenttest-dbs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-dbs-pipes-states-construct": { - "id": "pipe-test-dbs-pipes-states-construct", - "path": "dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "enrichment": { - "Fn::GetAtt": [ - "enrichmentfunction84C1BE72", - "Arn" - ] - }, - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F", - "Arn" - ] - } - }, - "level": "TRACE" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "startingPosition": "LATEST", - "maximumRetryAttempts": 3, - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-lambda-function-enrichment/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-lambda-function-enrichment/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-lambda-function-enrichment/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-lambda-function-enrichment/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-lambda-function-enrichment/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-lambda-function-enrichment":{"id":"dbspstp-lambda-function-enrichment","path":"dbspstp-lambda-function-enrichment","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"enrichment-function":{"id":"enrichment-function","path":"dbspstp-lambda-function-enrichment/enrichment-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"runtime":"*","handler":"*","code":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-lambda-function-enrichment/enrichment-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-lambda-function-enrichment/enrichment-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/enrichment-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"dbspstp-lambda-function-enrichment/enrichment-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"dbspstp-lambda-function-enrichment/enrichment-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"dbspstp-lambda-function-enrichment/enrichment-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/enrichment-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b2acf8c9fc806153dd62e2f9c3fd5d6042e7764d4584e06403b29a8b863d0bac.zip"},"handler":"index.handler","role":{"Fn::GetAtt":["enrichmentfunctionServiceRoleF21A0515","Arn"]},"runtime":"nodejs22.x"}}}}},"lambdadbsstp-test":{"id":"lambdadbsstp-test","path":"dbspstp-lambda-function-enrichment/lambdadbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-lambda-function-enrichment/lambdadbsstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-lambda-function-enrichment/lambdadbsstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/lambdadbsstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/lambdadbsstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdadbsstptestServiceRole4515C09E","Arn"]},"runtime":"nodejs22.x"}}}}},"taskdbsstp-test":{"id":"taskdbsstp-test","path":"dbspstp-lambda-function-enrichment/taskdbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-dbs-pipes-states-construct":{"id":"test-dbs-pipes-states-construct","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-lambda-function-enrichmenttest-dbs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49","roles":[{"Ref":"testdbspipesstatesconstructStateMachineRole802AA550"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineLogGroup1E17AD86","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineRole802AA550","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"dlq":{"id":"dlq","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdbspipesstatesconstructdlqF765E6A0"}]}}}}}}},"PipeRole--test-dbs-pipes-states-construct":{"id":"PipeRole--test-dbs-pipes-states-construct","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPipeRole--test-dbs-pipes-states-construct":{"id":"ImportPipeRole--test-dbs-pipes-states-construct","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"Version":"2012-10-17"}}]}}}}},"enrichmentpolicytest-dbs-pipes-states-construct":{"id":"enrichmentpolicytest-dbs-pipes-states-construct","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["enrichmentfunction84C1BE72","Arn"]}}],"Version":"2012-10-17"},"policyName":"testdbspipesstatesconstructenrichmentpolicytestdbspipesstatesconstruct28034D11","roles":[{"Ref":"testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C"}]}}}}},"LogGroup-test-dbs-pipes-states-construct":{"id":"LogGroup-test-dbs-pipes-states-construct","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-lambda-function-enrichmenttest-dbs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-dbs-pipes-states-construct":{"id":"pipe-test-dbs-pipes-states-construct","path":"dbspstp-lambda-function-enrichment/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"enrichment":{"Fn::GetAtt":["enrichmentfunction84C1BE72","Arn"]},"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F","Arn"]}},"level":"TRACE"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C","Arn"]},"source":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"startingPosition":"LATEST","maximumRetryAttempts":3,"deadLetterConfig":{"arn":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}}},"target":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-lambda-function-enrichment/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-lambda-function-enrichment/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-lambda-function-enrichment/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-lambda-function-enrichment/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-lambda-function-enrichment/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstp-logs-off.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstp-logs-off.assets.json index 8db5e6cdf..477892d34 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstp-logs-off.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstp-logs-off.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "be227a997cf86637cd910032fea817465f2e4c7cc3c817e0cd7fec573b517f50": { + "2c7853d940a8a7380b076c783afd69af84622f10fc4898279c1e8798e797789c": { + "displayName": "dbspstp-logs-off Template", "source": { "path": "dbspstp-logs-off.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-89e99428": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "be227a997cf86637cd910032fea817465f2e4c7cc3c817e0cd7fec573b517f50.json", + "objectKey": "2c7853d940a8a7380b076c783afd69af84622f10fc4898279c1e8798e797789c.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstp-logs-off.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstp-logs-off.template.json index e26cedf8a..814d40880 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstp-logs-off.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstp-logs-off.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstplogsoffIntegDefaultTestDeployAssert34D29E33.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstplogsoffIntegDefaultTestDeployAssert34D29E33.assets.json index 229350436..b139bfabf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstplogsoffIntegDefaultTestDeployAssert34D29E33.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/dbspstplogsoffIntegDefaultTestDeployAssert34D29E33.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstplogsoffIntegDefaultTestDeployAssert34D29E33 Template", "source": { "path": "dbspstplogsoffIntegDefaultTestDeployAssert34D29E33.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/integ.json index 729517a1b..94a352caa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-logs-off/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-logs-off/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstplogsoffIntegDefaultTestDeployAssert34D29E33" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/manifest.json index f971160ea..13c256f7f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstplogsoffIntegDefaultTestDeployAssert34D29E33.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstplogsoffIntegDefaultTestDeployAssert34D29E33.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-logs-off.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/be227a997cf86637cd910032fea817465f2e4c7cc3c817e0cd7fec573b517f50.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2c7853d940a8a7380b076c783afd69af84622f10fc4898279c1e8798e797789c.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-logs-off.assets" ], "metadata": { + "/dbspstp-logs-off/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-logs-off/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-logs-off/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-logs-off/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,24 +126,171 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructDynamoTable17AE0B12" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -126,36 +303,117 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructdlq139B810A" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructdlqPolicyBFC2549A" } ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/dbspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -188,6 +446,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/tree.json index 54f25f90e..2c80d7823 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-logs-off.js.snapshot/tree.json @@ -1,857 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-logs-off": { - "id": "dbspstp-logs-off", - "path": "dbspstp-logs-off", - "children": { - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "dbspstp-logs-off/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-logs-off/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-logs-off/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "dbspstp-logs-off/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-logs-offtest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructdlq139B810A" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructDynamoTable17AE0B12", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "dbspstp-logs-off/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructDynamoTable17AE0B12", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "startingPosition": "LATEST", - "maximumRetryAttempts": 3, - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-logs-off/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-logs-off/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-logs-off/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-logs-off/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-logs-off/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-logs-off/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-logs-off/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-logs-off/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-logs-off":{"id":"dbspstp-logs-off","path":"dbspstp-logs-off","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"dbspstp-logs-off/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-logs-off/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-logs-off/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-logs-off/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-logs-off/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"dbspstp-logs-off/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"dbspstp-logs-off/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-logs-offtest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"dlq":{"id":"dlq","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructdlq139B810A"}]}}}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructDynamoTable17AE0B12","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"dbspstp-logs-off/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructDynamoTable17AE0B12","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"startingPosition":"LATEST","maximumRetryAttempts":3,"deadLetterConfig":{"arn":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]}}}},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-logs-off/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-logs-off/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-logs-off/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-logs-off/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-logs-off/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-logs-off/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-logs-off/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-logs-off/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstp-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstp-no-arguments.assets.json index 81e02b826..44897d109 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstp-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstp-no-arguments.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "10d491a681303161dde8f48f68c46e40ae69ff8001688a8efa33084d64190ceb": { + "2d12e1f872990a7ef1264a8fb1e4c60df71edf66129b6fc543409b3c5781b95b": { + "displayName": "dbspstp-no-arguments Template", "source": { "path": "dbspstp-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-8f86cab9": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "10d491a681303161dde8f48f68c46e40ae69ff8001688a8efa33084d64190ceb.json", + "objectKey": "2d12e1f872990a7ef1264a8fb1e4c60df71edf66129b6fc543409b3c5781b95b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstp-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstp-no-arguments.template.json index c374fb488..51de1347b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstp-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstp-no-arguments.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstpnoargumentsIntegDefaultTestDeployAssertDCD87826.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstpnoargumentsIntegDefaultTestDeployAssertDCD87826.assets.json index a414bbd5b..e3aa3505a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstpnoargumentsIntegDefaultTestDeployAssertDCD87826.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/dbspstpnoargumentsIntegDefaultTestDeployAssertDCD87826.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstpnoargumentsIntegDefaultTestDeployAssertDCD87826 Template", "source": { "path": "dbspstpnoargumentsIntegDefaultTestDeployAssertDCD87826.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/integ.json index 02a392d91..72a360dbc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-no-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstpnoargumentsIntegDefaultTestDeployAssertDCD87826" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/manifest.json index 2cf80d474..55be5e846 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstpnoargumentsIntegDefaultTestDeployAssertDCD87826.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstpnoargumentsIntegDefaultTestDeployAssertDCD87826.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-no-arguments.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/10d491a681303161dde8f48f68c46e40ae69ff8001688a8efa33084d64190ceb.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2d12e1f872990a7ef1264a8fb1e4c60df71edf66129b6fc543409b3c5781b95b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-no-arguments.assets" ], "metadata": { + "/dbspstp-no-arguments/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-no-arguments/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-no-arguments/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-no-arguments/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,24 +126,171 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructDynamoTable4F0DA5B6" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructStateMachineLogGroup6986BB22" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructStateMachineRole04A3CFBB" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -126,42 +303,132 @@ "data": "testddbspipesstatesconstructStateMachine10DF8368" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructExecutionFailedAlarmC08BE65A" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructExecutionThrottledAlarm9ABEAF66" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructExecutionAbortedAlarm19AB16F0" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructdlq43239DE7" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructdlqPolicy82F4B6C5" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/ImportPipeRole--test-ddbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructPipeRoletestddbspipesstatesconstructED65D64D" } ], + "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-no-arguments/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -194,6 +461,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/tree.json index 01b4f552f..ab793e84d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-arguments.js.snapshot/tree.json @@ -1,912 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-no-arguments": { - "id": "dbspstp-no-arguments", - "path": "dbspstp-no-arguments", - "children": { - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "dbspstp-no-arguments/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-no-arguments/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-no-arguments/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "dbspstp-no-arguments/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-ddbs-pipes-states-construct": { - "id": "test-ddbs-pipes-states-construct", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-no-argumentstest-ddbs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testddbspipesstatesconstructStateMachineRoleDefaultPolicyF472E1B9", - "roles": [ - { - "Ref": "testddbspipesstatesconstructStateMachineRole04A3CFBB" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructStateMachineLogGroup6986BB22", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructStateMachineRole04A3CFBB", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructdlq43239DE7", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructdlq43239DE7", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testddbspipesstatesconstructdlq43239DE7" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-ddbs-pipes-states-construct": { - "id": "PipeRole--test-ddbs-pipes-states-construct", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct", - "children": { - "ImportPipeRole--test-ddbs-pipes-states-construct": { - "id": "ImportPipeRole--test-ddbs-pipes-states-construct", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/ImportPipeRole--test-ddbs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructDynamoTable4F0DA5B6", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructdlq43239DE7", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "LogGroup-test-ddbs-pipes-states-construct": { - "id": "LogGroup-test-ddbs-pipes-states-construct", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-no-argumentstest-ddbs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-ddbs-pipes-states-construct": { - "id": "pipe-test-ddbs-pipes-states-construct", - "path": "dbspstp-no-arguments/test-ddbs-pipes-states-construct/pipe-test-ddbs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructLogGrouptestddbspipesstatesconstruct26A05CCF", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructPipeRoletestddbspipesstatesconstructED65D64D", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructDynamoTable4F0DA5B6", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "startingPosition": "LATEST", - "maximumRetryAttempts": 3, - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructdlq43239DE7", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-no-arguments/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-no-arguments/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-no-arguments/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-no-arguments/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-no-arguments/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-no-arguments/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-no-arguments":{"id":"dbspstp-no-arguments","path":"dbspstp-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"dbspstp-no-arguments/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-no-arguments/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-no-arguments/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-no-arguments/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-no-arguments/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"dbspstp-no-arguments/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-ddbs-pipes-states-construct":{"id":"test-ddbs-pipes-states-construct","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-no-argumentstest-ddbs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testddbspipesstatesconstructStateMachineRoleDefaultPolicyF472E1B9","roles":[{"Ref":"testddbspipesstatesconstructStateMachineRole04A3CFBB"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testddbspipesstatesconstructStateMachineLogGroup6986BB22","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testddbspipesstatesconstructStateMachineRole04A3CFBB","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"dlq":{"id":"dlq","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testddbspipesstatesconstructdlq43239DE7","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testddbspipesstatesconstructdlq43239DE7","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testddbspipesstatesconstructdlq43239DE7"}]}}}}}}},"PipeRole--test-ddbs-pipes-states-construct":{"id":"PipeRole--test-ddbs-pipes-states-construct","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-ddbs-pipes-states-construct":{"id":"ImportPipeRole--test-ddbs-pipes-states-construct","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/ImportPipeRole--test-ddbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbspipesstatesconstructDynamoTable4F0DA5B6","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testddbspipesstatesconstructdlq43239DE7","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-ddbs-pipes-states-construct":{"id":"LogGroup-test-ddbs-pipes-states-construct","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-no-argumentstest-ddbs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-ddbs-pipes-states-construct":{"id":"pipe-test-ddbs-pipes-states-construct","path":"dbspstp-no-arguments/test-ddbs-pipes-states-construct/pipe-test-ddbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testddbspipesstatesconstructLogGrouptestddbspipesstatesconstruct26A05CCF","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testddbspipesstatesconstructPipeRoletestddbspipesstatesconstructED65D64D","Arn"]},"source":{"Fn::GetAtt":["testddbspipesstatesconstructDynamoTable4F0DA5B6","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"startingPosition":"LATEST","maximumRetryAttempts":3,"deadLetterConfig":{"arn":{"Fn::GetAtt":["testddbspipesstatesconstructdlq43239DE7","Arn"]}}}},"target":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstp-no-dlq.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstp-no-dlq.assets.json index c09f51ade..50db650dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstp-no-dlq.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstp-no-dlq.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "7d50a5e90b7357f722adb46d110392737d63ade5acff24d07dd1d64691f32348": { + "3e034df9af742f80623c6fc8f7aaffafec6e094c490083d67d2fc653ac0d3d21": { + "displayName": "dbspstp-no-dlq Template", "source": { "path": "dbspstp-no-dlq.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-c46a464a": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7d50a5e90b7357f722adb46d110392737d63ade5acff24d07dd1d64691f32348.json", + "objectKey": "3e034df9af742f80623c6fc8f7aaffafec6e094c490083d67d2fc653ac0d3d21.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstp-no-dlq.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstp-no-dlq.template.json index 224e10333..b596fa860 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstp-no-dlq.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstp-no-dlq.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstpnodlqIntegDefaultTestDeployAssert3A2FCDBB.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstpnodlqIntegDefaultTestDeployAssert3A2FCDBB.assets.json index f74878f02..1dd293cbe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstpnodlqIntegDefaultTestDeployAssert3A2FCDBB.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/dbspstpnodlqIntegDefaultTestDeployAssert3A2FCDBB.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstpnodlqIntegDefaultTestDeployAssert3A2FCDBB Template", "source": { "path": "dbspstpnodlqIntegDefaultTestDeployAssert3A2FCDBB.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/integ.json index c45e4d9c6..1d43bbd9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-no-dlq/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-no-dlq/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstpnodlqIntegDefaultTestDeployAssert3A2FCDBB" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/manifest.json index b3d1077b4..9e29d2e50 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstpnodlqIntegDefaultTestDeployAssert3A2FCDBB.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstpnodlqIntegDefaultTestDeployAssert3A2FCDBB.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-no-dlq.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7d50a5e90b7357f722adb46d110392737d63ade5acff24d07dd1d64691f32348.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3e034df9af742f80623c6fc8f7aaffafec6e094c490083d67d2fc653ac0d3d21.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-no-dlq.assets" ], "metadata": { + "/dbspstp-no-dlq/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-no-dlq/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-no-dlq/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-no-dlq/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,24 +126,171 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructDynamoTable4F0DA5B6" } ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructStateMachineLogGroup6986BB22" } ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructStateMachineRole04A3CFBB" } ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -126,30 +303,102 @@ "data": "testddbspipesstatesconstructStateMachine10DF8368" } ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructExecutionFailedAlarmC08BE65A" } ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructExecutionThrottledAlarm9ABEAF66" } ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructExecutionAbortedAlarm19AB16F0" } ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/ImportPipeRole--test-ddbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testddbspipesstatesconstructPipeRoletestddbspipesstatesconstructED65D64D" } ], + "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-no-dlq/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -182,6 +431,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/tree.json index c67a4fbcc..7bb4594e9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-no-dlq.js.snapshot/tree.json @@ -1,780 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-no-dlq": { - "id": "dbspstp-no-dlq", - "path": "dbspstp-no-dlq", - "children": { - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "dbspstp-no-dlq/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-no-dlq/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-no-dlq/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "dbspstp-no-dlq/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-ddbs-pipes-states-construct": { - "id": "test-ddbs-pipes-states-construct", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-no-dlqtest-ddbs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testddbspipesstatesconstructStateMachineRoleDefaultPolicyF472E1B9", - "roles": [ - { - "Ref": "testddbspipesstatesconstructStateMachineRole04A3CFBB" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructStateMachineLogGroup6986BB22", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructStateMachineRole04A3CFBB", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "PipeRole--test-ddbs-pipes-states-construct": { - "id": "PipeRole--test-ddbs-pipes-states-construct", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct", - "children": { - "ImportPipeRole--test-ddbs-pipes-states-construct": { - "id": "ImportPipeRole--test-ddbs-pipes-states-construct", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/ImportPipeRole--test-ddbs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructDynamoTable4F0DA5B6", - "StreamArn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "LogGroup-test-ddbs-pipes-states-construct": { - "id": "LogGroup-test-ddbs-pipes-states-construct", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-no-dlqtest-ddbs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-ddbs-pipes-states-construct": { - "id": "pipe-test-ddbs-pipes-states-construct", - "path": "dbspstp-no-dlq/test-ddbs-pipes-states-construct/pipe-test-ddbs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructLogGrouptestddbspipesstatesconstruct26A05CCF", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructPipeRoletestddbspipesstatesconstructED65D64D", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testddbspipesstatesconstructDynamoTable4F0DA5B6", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "startingPosition": "LATEST" - } - }, - "target": { - "Ref": "testddbspipesstatesconstructStateMachine10DF8368" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-no-dlq/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-no-dlq/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-no-dlq/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-no-dlq/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-no-dlq/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-no-dlq/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-no-dlq/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-no-dlq/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-no-dlq":{"id":"dbspstp-no-dlq","path":"dbspstp-no-dlq","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"dbspstp-no-dlq/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-no-dlq/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-no-dlq/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-no-dlq/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-no-dlq/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"dbspstp-no-dlq/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-ddbs-pipes-states-construct":{"id":"test-ddbs-pipes-states-construct","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-no-dlqtest-ddbs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testddbspipesstatesconstructStateMachineRoleDefaultPolicyF472E1B9","roles":[{"Ref":"testddbspipesstatesconstructStateMachineRole04A3CFBB"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testddbspipesstatesconstructStateMachineLogGroup6986BB22","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testddbspipesstatesconstructStateMachineRole04A3CFBB","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"PipeRole--test-ddbs-pipes-states-construct":{"id":"PipeRole--test-ddbs-pipes-states-construct","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-ddbs-pipes-states-construct":{"id":"ImportPipeRole--test-ddbs-pipes-states-construct","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/ImportPipeRole--test-ddbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/PipeRole--test-ddbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testddbspipesstatesconstructDynamoTable4F0DA5B6","StreamArn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-ddbs-pipes-states-construct":{"id":"LogGroup-test-ddbs-pipes-states-construct","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/LogGroup-test-ddbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-no-dlqtest-ddbs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-ddbs-pipes-states-construct":{"id":"pipe-test-ddbs-pipes-states-construct","path":"dbspstp-no-dlq/test-ddbs-pipes-states-construct/pipe-test-ddbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testddbspipesstatesconstructLogGrouptestddbspipesstatesconstruct26A05CCF","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testddbspipesstatesconstructPipeRoletestddbspipesstatesconstructED65D64D","Arn"]},"source":{"Fn::GetAtt":["testddbspipesstatesconstructDynamoTable4F0DA5B6","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"startingPosition":"LATEST"}},"target":{"Ref":"testddbspipesstatesconstructStateMachine10DF8368"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-no-dlq/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-no-dlq/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-no-dlq/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-no-dlq/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-no-dlq/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-no-dlq/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-no-dlq/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-no-dlq/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstp-set-stream-batch-size.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstp-set-stream-batch-size.assets.json index 595e53174..4a56dc25f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstp-set-stream-batch-size.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstp-set-stream-batch-size.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "7e3f503cab01a51cb5a78839e0be3ad6acf51d18d6303e75b708e3e5674b8dec": { + "a64ffb0ba4a42d5bed8f19c3e4e926a945f618fbc5830aefe59dfb5a7548ca7d": { + "displayName": "dbspstp-set-stream-batch-size Template", "source": { "path": "dbspstp-set-stream-batch-size.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-0781e298": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7e3f503cab01a51cb5a78839e0be3ad6acf51d18d6303e75b708e3e5674b8dec.json", + "objectKey": "a64ffb0ba4a42d5bed8f19c3e4e926a945f618fbc5830aefe59dfb5a7548ca7d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstp-set-stream-batch-size.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstp-set-stream-batch-size.template.json index c6e8dd284..31e949703 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstp-set-stream-batch-size.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstp-set-stream-batch-size.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdadbsstptestServiceRole4515C09E" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstpsetstreambatchsizeIntegDefaultTestDeployAssertC10D846F.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstpsetstreambatchsizeIntegDefaultTestDeployAssertC10D846F.assets.json index aa1c3fab7..0796dea1c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstpsetstreambatchsizeIntegDefaultTestDeployAssertC10D846F.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/dbspstpsetstreambatchsizeIntegDefaultTestDeployAssertC10D846F.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstpsetstreambatchsizeIntegDefaultTestDeployAssertC10D846F Template", "source": { "path": "dbspstpsetstreambatchsizeIntegDefaultTestDeployAssertC10D846F.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/integ.json index 1c9687272..69cf4c0d9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-set-stream-batch-size/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-set-stream-batch-size/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstpsetstreambatchsizeIntegDefaultTestDeployAssertC10D846F" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/manifest.json index 5dde9ab9c..66d420f31 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstpsetstreambatchsizeIntegDefaultTestDeployAssertC10D846F.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstpsetstreambatchsizeIntegDefaultTestDeployAssertC10D846F.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-set-stream-batch-size.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7e3f503cab01a51cb5a78839e0be3ad6acf51d18d6303e75b708e3e5674b8dec.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a64ffb0ba4a42d5bed8f19c3e4e926a945f618fbc5830aefe59dfb5a7548ca7d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-set-stream-batch-size.assets" ], "metadata": { + "/dbspstp-set-stream-batch-size/lambdadbsstp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-set-stream-batch-size/lambdadbsstp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-set-stream-batch-size/lambdadbsstp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-set-stream-batch-size/lambdadbsstp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,24 +126,171 @@ "data": "lambdadbsstptestE56C39A8" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructDynamoTable17AE0B12" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -126,42 +303,132 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructdlq139B810A" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructdlqPolicyBFC2549A" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -194,6 +461,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/tree.json index d7b0798c9..03b60bf01 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-set-stream-batch-size.js.snapshot/tree.json @@ -1,913 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-set-stream-batch-size": { - "id": "dbspstp-set-stream-batch-size", - "path": "dbspstp-set-stream-batch-size", - "children": { - "lambdadbsstp-test": { - "id": "lambdadbsstp-test", - "path": "dbspstp-set-stream-batch-size/lambdadbsstp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-set-stream-batch-size/lambdadbsstp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-set-stream-batch-size/lambdadbsstp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/lambdadbsstp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/lambdadbsstp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdadbsstptestServiceRole4515C09E", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "taskdbsstp-test": { - "id": "taskdbsstp-test", - "path": "dbspstp-set-stream-batch-size/taskdbsstp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-set-stream-batch-sizetest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructdlq139B810A" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructDynamoTable17AE0B12", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-set-stream-batch-sizetest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructDynamoTable17AE0B12", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "batchSize": 50, - "startingPosition": "LATEST", - "maximumRetryAttempts": 3, - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-set-stream-batch-size/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-set-stream-batch-size/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-set-stream-batch-size/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-set-stream-batch-size/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-set-stream-batch-size/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-set-stream-batch-size/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-set-stream-batch-size/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-set-stream-batch-size/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-set-stream-batch-size":{"id":"dbspstp-set-stream-batch-size","path":"dbspstp-set-stream-batch-size","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdadbsstp-test":{"id":"lambdadbsstp-test","path":"dbspstp-set-stream-batch-size/lambdadbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-set-stream-batch-size/lambdadbsstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-set-stream-batch-size/lambdadbsstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/lambdadbsstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/lambdadbsstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdadbsstptestServiceRole4515C09E","Arn"]},"runtime":"nodejs22.x"}}}}},"taskdbsstp-test":{"id":"taskdbsstp-test","path":"dbspstp-set-stream-batch-size/taskdbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-set-stream-batch-sizetest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"dlq":{"id":"dlq","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructdlq139B810A"}]}}}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructDynamoTable17AE0B12","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-set-stream-batch-sizetest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"dbspstp-set-stream-batch-size/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructDynamoTable17AE0B12","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"batchSize":50,"startingPosition":"LATEST","maximumRetryAttempts":3,"deadLetterConfig":{"arn":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]}}}},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-set-stream-batch-size/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-set-stream-batch-size/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-set-stream-batch-size/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-set-stream-batch-size/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-set-stream-batch-size/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-set-stream-batch-size/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-set-stream-batch-size/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-set-stream-batch-size/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstp-state-machine-enrichment.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstp-state-machine-enrichment.assets.json index ad4d683e2..f985aac59 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstp-state-machine-enrichment.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstp-state-machine-enrichment.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "690c3afba41fd84c15e79f468c082d1d3426baaf659324dd8fadeafcf984b890": { + "a4b40dea0a652ef89ff6867c0357ac31c0d7c0740425c48ddec4ffd6a01bc96e": { + "displayName": "dbspstp-state-machine-enrichment Template", "source": { "path": "dbspstp-state-machine-enrichment.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-3f79bbb6": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "690c3afba41fd84c15e79f468c082d1d3426baaf659324dd8fadeafcf984b890.json", + "objectKey": "a4b40dea0a652ef89ff6867c0357ac31c0d7c0740425c48ddec4ffd6a01bc96e.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstp-state-machine-enrichment.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstp-state-machine-enrichment.template.json index 5dc66f108..b87ed0f05 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstp-state-machine-enrichment.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstp-state-machine-enrichment.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdatempServiceRoleA1A0368B" @@ -220,7 +220,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstpstatemachineenrichmentIntegDefaultTestDeployAssert82B6B0D6.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstpstatemachineenrichmentIntegDefaultTestDeployAssert82B6B0D6.assets.json index 2ef0e630c..ab05f9932 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstpstatemachineenrichmentIntegDefaultTestDeployAssert82B6B0D6.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/dbspstpstatemachineenrichmentIntegDefaultTestDeployAssert82B6B0D6.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstpstatemachineenrichmentIntegDefaultTestDeployAssert82B6B0D6 Template", "source": { "path": "dbspstpstatemachineenrichmentIntegDefaultTestDeployAssert82B6B0D6.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/integ.json index 1feadb810..480943dc4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-state-machine-enrichment/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstpstatemachineenrichmentIntegDefaultTestDeployAssert82B6B0D6" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/manifest.json index b63452ff3..9bb2d3e31 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstpstatemachineenrichmentIntegDefaultTestDeployAssert82B6B0D6.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstpstatemachineenrichmentIntegDefaultTestDeployAssert82B6B0D6.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-state-machine-enrichment.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/690c3afba41fd84c15e79f468c082d1d3426baaf659324dd8fadeafcf984b890.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a4b40dea0a652ef89ff6867c0357ac31c0d7c0740425c48ddec4ffd6a01bc96e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-state-machine-enrichment.assets" ], "metadata": { + "/dbspstp-state-machine-enrichment/lambdatemp": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-state-machine-enrichment/lambdatemp/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-state-machine-enrichment/lambdatemp/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-state-machine-enrichment/lambdatemp/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,12 +126,100 @@ "data": "lambdatemp1CD2462E" } ], + "/dbspstp-state-machine-enrichment/temp": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "stateMachineType": "EXPRESS", + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-state-machine-enrichment/temp/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/dbspstp-state-machine-enrichment/temp/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-state-machine-enrichment/temp/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "tempRole0DF4072C" } ], + "/dbspstp-state-machine-enrichment/temp/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-state-machine-enrichment/temp/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -114,6 +232,38 @@ "data": "temp3A4F7567" } ], + "/dbspstp-state-machine-enrichment/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -126,24 +276,171 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructDynamoTable17AE0B12" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -156,48 +453,186 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructdlq139B810A" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructdlqPolicyBFC2549A" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructenrichmentpolicytestsqspipesstatesconstructC752476A" } ], + "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -230,6 +665,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/tree.json index ec992ee73..b0ceff423 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-state-machine-enrichment.js.snapshot/tree.json @@ -1,1207 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-state-machine-enrichment": { - "id": "dbspstp-state-machine-enrichment", - "path": "dbspstp-state-machine-enrichment", - "children": { - "lambdatemp": { - "id": "lambdatemp", - "path": "dbspstp-state-machine-enrichment/lambdatemp", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-state-machine-enrichment/lambdatemp/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-state-machine-enrichment/lambdatemp/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/lambdatemp/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/lambdatemp/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdatempServiceRoleA1A0368B", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "tasktemp": { - "id": "tasktemp", - "path": "dbspstp-state-machine-enrichment/tasktemp", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "temp": { - "id": "temp", - "path": "dbspstp-state-machine-enrichment/temp", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-state-machine-enrichment/temp/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-state-machine-enrichment/temp/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/temp/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-state-machine-enrichment/temp/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/temp/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdatemp1CD2462E", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdatemp1CD2462E", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - } - ], - "Version": "2012-10-17" - }, - "policyName": "tempRoleDefaultPolicy6B471CA6", - "roles": [ - { - "Ref": "tempRole0DF4072C" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/temp/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasktemp\",\"States\":{\"tasktemp\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdatemp1CD2462E", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "roleArn": { - "Fn::GetAtt": [ - "tempRole0DF4072C", - "Arn" - ] - }, - "stateMachineType": "EXPRESS" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "dbspstp-state-machine-enrichment/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "dbspstp-state-machine-enrichment/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-state-machine-enrichmenttest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructdlq139B810A" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructDynamoTable17AE0B12", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "enrichmentpolicytest-sqs-pipes-states-construct": { - "id": "enrichmentpolicytest-sqs-pipes-states-construct", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "states:StartSyncExecution", - "Effect": "Allow", - "Resource": { - "Ref": "temp3A4F7567" - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructenrichmentpolicytestsqspipesstatesconstructC752476A", - "roles": [ - { - "Ref": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-state-machine-enrichmenttest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "enrichment": { - "Ref": "temp3A4F7567" - }, - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "TRACE" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructDynamoTable17AE0B12", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "startingPosition": "LATEST", - "maximumRetryAttempts": 3, - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructdlq139B810A", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-state-machine-enrichment/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-state-machine-enrichment/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-state-machine-enrichment/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-state-machine-enrichment/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-state-machine-enrichment/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-state-machine-enrichment":{"id":"dbspstp-state-machine-enrichment","path":"dbspstp-state-machine-enrichment","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdatemp":{"id":"lambdatemp","path":"dbspstp-state-machine-enrichment/lambdatemp","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-state-machine-enrichment/lambdatemp/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-state-machine-enrichment/lambdatemp/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/lambdatemp/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/lambdatemp/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdatempServiceRoleA1A0368B","Arn"]},"runtime":"nodejs22.x"}}}}},"tasktemp":{"id":"tasktemp","path":"dbspstp-state-machine-enrichment/tasktemp","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"temp":{"id":"temp","path":"dbspstp-state-machine-enrichment/temp","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"stateMachineType":"EXPRESS","definitionBody":"*"},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-state-machine-enrichment/temp/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-state-machine-enrichment/temp/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/temp/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-state-machine-enrichment/temp/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/temp/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdatemp1CD2462E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdatemp1CD2462E","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"tempRoleDefaultPolicy6B471CA6","roles":[{"Ref":"tempRole0DF4072C"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/temp/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasktemp\",\"States\":{\"tasktemp\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdatemp1CD2462E","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"roleArn":{"Fn::GetAtt":["tempRole0DF4072C","Arn"]},"stateMachineType":"EXPRESS"}}}}},"lambdas3stp-test":{"id":"lambdas3stp-test","path":"dbspstp-state-machine-enrichment/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"dbspstp-state-machine-enrichment/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-state-machine-enrichmenttest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"dlq":{"id":"dlq","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructdlq139B810A"}]}}}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructDynamoTable17AE0B12","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"enrichmentpolicytest-sqs-pipes-states-construct":{"id":"enrichmentpolicytest-sqs-pipes-states-construct","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartSyncExecution","Effect":"Allow","Resource":{"Ref":"temp3A4F7567"}}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructenrichmentpolicytestsqspipesstatesconstructC752476A","roles":[{"Ref":"testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C"}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-state-machine-enrichmenttest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"dbspstp-state-machine-enrichment/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"enrichment":{"Ref":"temp3A4F7567"},"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"TRACE"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructDynamoTable17AE0B12","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"startingPosition":"LATEST","maximumRetryAttempts":3,"deadLetterConfig":{"arn":{"Fn::GetAtt":["testsqspipesstatesconstructdlq139B810A","Arn"]}}}},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-state-machine-enrichment/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-state-machine-enrichment/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-state-machine-enrichment/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-state-machine-enrichment/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-state-machine-enrichment/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstp-test-dlq.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstp-test-dlq.assets.json index ca86dd0b6..84bc9f51b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstp-test-dlq.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstp-test-dlq.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "cbb67a75558e64c020ea7a5739b461757932164c84b09a36054ffe94f3ce2a4a": { + "afa794d96bc6bc081d95b6fd022cac43550e20bf2c90cd574fe5f130fb6b8c35": { + "displayName": "dbspstp-test-dlq Template", "source": { "path": "dbspstp-test-dlq.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d434d679": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "cbb67a75558e64c020ea7a5739b461757932164c84b09a36054ffe94f3ce2a4a.json", + "objectKey": "afa794d96bc6bc081d95b6fd022cac43550e20bf2c90cd574fe5f130fb6b8c35.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstp-test-dlq.template.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstp-test-dlq.template.json index f950390d7..4be64f317 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstp-test-dlq.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstp-test-dlq.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "badfunctionServiceRoleCA8E6EA9" @@ -112,7 +112,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdadbsstptestServiceRole4515C09E" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstptestdlqIntegDefaultTestDeployAssert93B72886.assets.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstptestdlqIntegDefaultTestDeployAssert93B72886.assets.json index 172390408..eaf6ac768 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstptestdlqIntegDefaultTestDeployAssert93B72886.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/dbspstptestdlqIntegDefaultTestDeployAssert93B72886.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "dbspstptestdlqIntegDefaultTestDeployAssert93B72886 Template", "source": { "path": "dbspstptestdlqIntegDefaultTestDeployAssert93B72886.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/integ.json index 766a2f623..1578d1d67 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "dbspstp-test-dlq/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "dbspstp-test-dlq/Integ/DefaultTest/DeployAssert", "assertionStackName": "dbspstptestdlqIntegDefaultTestDeployAssert93B72886" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/manifest.json index c78618004..6f5613f91 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "dbspstptestdlqIntegDefaultTestDeployAssert93B72886.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "dbspstptestdlqIntegDefaultTestDeployAssert93B72886.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "dbspstp-test-dlq.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/cbb67a75558e64c020ea7a5739b461757932164c84b09a36054ffe94f3ce2a4a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/afa794d96bc6bc081d95b6fd022cac43550e20bf2c90cd574fe5f130fb6b8c35.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "dbspstp-test-dlq.assets" ], "metadata": { + "/dbspstp-test-dlq/bad-function": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-test-dlq/bad-function/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-test-dlq/bad-function/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-test-dlq/bad-function/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,6 +126,38 @@ "data": "badfunction3559C0E9" } ], + "/dbspstp-test-dlq/lambdadbsstp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/dbspstp-test-dlq/lambdadbsstp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/dbspstp-test-dlq/lambdadbsstp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-test-dlq/lambdadbsstp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -108,24 +170,171 @@ "data": "lambdadbsstptestE56C39A8" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/DynamoTable": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "billingMode": "PAY_PER_REQUEST", + "encryption": "AWS_MANAGED", + "partitionKey": { + "name": "*", + "type": "S" + }, + "stream": "NEW_AND_OLD_IMAGES", + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + } + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/DynamoTable/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructDynamoTable5457FA02" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/DynamoTable/ScalingRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineLogGroup1E17AD86" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructStateMachineRole802AA550" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -138,48 +347,186 @@ "data": "testdbspipesstatesconstructStateMachine9909327F" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionFailedAlarm6678470E" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionThrottledAlarm0286BB10" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructExecutionAbortedAlarmF4C945F2" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqF765E6A0" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructdlqPolicyB08573AE" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testdbspipesstatesconstructenrichmentpolicytestdbspipesstatesconstruct28034D11" } ], + "/dbspstp-test-dlq/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/dbspstp-test-dlq/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -212,6 +559,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/tree.json index fee6f36de..c8aa7b187 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.js.snapshot/tree.json @@ -1,1054 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "dbspstp-test-dlq": { - "id": "dbspstp-test-dlq", - "path": "dbspstp-test-dlq", - "children": { - "bad-function": { - "id": "bad-function", - "path": "dbspstp-test-dlq/bad-function", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-test-dlq/bad-function/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-test-dlq/bad-function/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/bad-function/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/bad-function/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => { console.log(event); throw new Error(\"JUST BREAK\");" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "badfunctionServiceRoleCA8E6EA9", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "lambdadbsstp-test": { - "id": "lambdadbsstp-test", - "path": "dbspstp-test-dlq/lambdadbsstp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "dbspstp-test-dlq/lambdadbsstp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "dbspstp-test-dlq/lambdadbsstp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/lambdadbsstp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/lambdadbsstp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdadbsstptestServiceRole4515C09E", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.163.1" - } - }, - "taskdbsstp-test": { - "id": "taskdbsstp-test", - "path": "dbspstp-test-dlq/taskdbsstp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.163.1" - } - }, - "test-dbs-pipes-states-construct": { - "id": "test-dbs-pipes-states-construct", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct", - "children": { - "DynamoTable": { - "id": "DynamoTable", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/DynamoTable", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/DynamoTable/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::DynamoDB::Table", - "aws:cdk:cloudformation:props": { - "attributeDefinitions": [ - { - "attributeName": "id", - "attributeType": "S" - } - ], - "billingMode": "PAY_PER_REQUEST", - "keySchema": [ - { - "attributeName": "id", - "keyType": "HASH" - } - ], - "pointInTimeRecoverySpecification": { - "pointInTimeRecoveryEnabled": true - }, - "sseSpecification": { - "sseEnabled": true - }, - "streamSpecification": { - "streamViewType": "NEW_AND_OLD_IMAGES" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.CfnTable", - "version": "2.163.1" - } - }, - "ScalingRole": { - "id": "ScalingRole", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/DynamoTable/ScalingRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_dynamodb.Table", - "version": "2.163.1" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/dbspstp-test-dlqtest-dbs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49", - "roles": [ - { - "Ref": "testdbspipesstatesconstructStateMachineRole802AA550" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdadbsstptestE56C39A8", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineLogGroup1E17AD86", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructStateMachineRole802AA550", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.163.1" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.163.1" - } - }, - "dlq": { - "id": "dlq", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.163.1" - } - }, - "Policy": { - "id": "Policy", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testdbspipesstatesconstructdlqF765E6A0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.163.1" - } - }, - "PipeRole--test-dbs-pipes-states-construct": { - "id": "PipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct", - "children": { - "ImportPipeRole--test-dbs-pipes-states-construct": { - "id": "ImportPipeRole--test-dbs-pipes-states-construct", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.163.1" - } - }, - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "dynamodb:DescribeStream", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:ListStreams" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - } - }, - { - "Action": "sqs:SendMessage", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.163.1" - } - }, - "enrichmentpolicytest-dbs-pipes-states-construct": { - "id": "enrichmentpolicytest-dbs-pipes-states-construct", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "badfunction3559C0E9", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "testdbspipesstatesconstructenrichmentpolicytestdbspipesstatesconstruct28034D11", - "roles": [ - { - "Ref": "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.163.1" - } - }, - "LogGroup-test-dbs-pipes-states-construct": { - "id": "LogGroup-test-dbs-pipes-states-construct", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/dbspstp-test-dlqtest-dbs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.163.1" - } - }, - "pipe-test-dbs-pipes-states-construct": { - "id": "pipe-test-dbs-pipes-states-construct", - "path": "dbspstp-test-dlq/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "enrichment": { - "Fn::GetAtt": [ - "badfunction3559C0E9", - "Arn" - ] - }, - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F", - "Arn" - ] - } - }, - "level": "TRACE" - }, - "roleArn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructDynamoTable5457FA02", - "StreamArn" - ] - }, - "sourceParameters": { - "dynamoDbStreamParameters": { - "maximumRecordAgeInSeconds": 60, - "maximumRetryAttempts": 1, - "startingPosition": "LATEST", - "deadLetterConfig": { - "arn": { - "Fn::GetAtt": [ - "testdbspipesstatesconstructdlqF765E6A0", - "Arn" - ] - } - } - } - }, - "target": { - "Ref": "testdbspipesstatesconstructStateMachine9909327F" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions", - "version": "2.74.0" - } - }, - "Integ": { - "id": "Integ", - "path": "dbspstp-test-dlq/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "dbspstp-test-dlq/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "dbspstp-test-dlq/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "dbspstp-test-dlq/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-test-dlq/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-test-dlq/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.163.1-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.163.1-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "dbspstp-test-dlq/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.163.1" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "dbspstp-test-dlq/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.163.1" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.163.1" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.163.1" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"dbspstp-test-dlq":{"id":"dbspstp-test-dlq","path":"dbspstp-test-dlq","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"bad-function":{"id":"bad-function","path":"dbspstp-test-dlq/bad-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-test-dlq/bad-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-test-dlq/bad-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-test-dlq/bad-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-test-dlq/bad-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => { console.log(event); throw new Error(\"JUST BREAK\");"},"handler":"index.handler","role":{"Fn::GetAtt":["badfunctionServiceRoleCA8E6EA9","Arn"]},"runtime":"nodejs22.x"}}}}},"lambdadbsstp-test":{"id":"lambdadbsstp-test","path":"dbspstp-test-dlq/lambdadbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"dbspstp-test-dlq/lambdadbsstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"dbspstp-test-dlq/lambdadbsstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-test-dlq/lambdadbsstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"dbspstp-test-dlq/lambdadbsstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdadbsstptestServiceRole4515C09E","Arn"]},"runtime":"nodejs22.x"}}}}},"taskdbsstp-test":{"id":"taskdbsstp-test","path":"dbspstp-test-dlq/taskdbsstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-dbs-pipes-states-construct":{"id":"test-dbs-pipes-states-construct","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions.DynamoDBStreamsToPipesToStepfunctions","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"stream":"NEW_AND_OLD_IMAGES","pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true},"streamSpecification":{"streamViewType":"NEW_AND_OLD_IMAGES"}}}},"ScalingRole":{"id":"ScalingRole","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/dbspstp-test-dlqtest-dbs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testdbspipesstatesconstructStateMachineRoleDefaultPolicy12413F49","roles":[{"Ref":"testdbspipesstatesconstructStateMachineRole802AA550"}]}}}}}}},"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskdbsstp-test\",\"States\":{\"taskdbsstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdadbsstptestE56C39A8","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineLogGroup1E17AD86","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructStateMachineRole802AA550","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"dlq":{"id":"dlq","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testdbspipesstatesconstructdlqF765E6A0"}]}}}}}}},"PipeRole--test-dbs-pipes-states-construct":{"id":"PipeRole--test-dbs-pipes-states-construct","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPipeRole--test-dbs-pipes-states-construct":{"id":"ImportPipeRole--test-dbs-pipes-states-construct","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/ImportPipeRole--test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/PipeRole--test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["dynamodb:DescribeStream","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:ListStreams"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]}},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"}}],"Version":"2012-10-17"}}]}}}}},"enrichmentpolicytest-dbs-pipes-states-construct":{"id":"enrichmentpolicytest-dbs-pipes-states-construct","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/enrichmentpolicytest-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["badfunction3559C0E9","Arn"]}}],"Version":"2012-10-17"},"policyName":"testdbspipesstatesconstructenrichmentpolicytestdbspipesstatesconstruct28034D11","roles":[{"Ref":"testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C"}]}}}}},"LogGroup-test-dbs-pipes-states-construct":{"id":"LogGroup-test-dbs-pipes-states-construct","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/LogGroup-test-dbs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/dbspstp-test-dlqtest-dbs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-dbs-pipes-states-construct":{"id":"pipe-test-dbs-pipes-states-construct","path":"dbspstp-test-dlq/test-dbs-pipes-states-construct/pipe-test-dbs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"enrichment":{"Fn::GetAtt":["badfunction3559C0E9","Arn"]},"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testdbspipesstatesconstructLogGrouptestdbspipesstatesconstructAB6BC73F","Arn"]}},"level":"TRACE"},"roleArn":{"Fn::GetAtt":["testdbspipesstatesconstructPipeRoletestdbspipesstatesconstruct4E57732C","Arn"]},"source":{"Fn::GetAtt":["testdbspipesstatesconstructDynamoTable5457FA02","StreamArn"]},"sourceParameters":{"dynamoDbStreamParameters":{"maximumRecordAgeInSeconds":60,"maximumRetryAttempts":1,"startingPosition":"LATEST","deadLetterConfig":{"arn":{"Fn::GetAtt":["testdbspipesstatesconstructdlqF765E6A0","Arn"]}}}},"target":{"Ref":"testdbspipesstatesconstructStateMachine9909327F"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"dbspstp-test-dlq/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.163.1-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"dbspstp-test-dlq/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.163.1-alpha.0"},"children":{"Default":{"id":"Default","path":"dbspstp-test-dlq/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"dbspstp-test-dlq/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-test-dlq/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-test-dlq/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"dbspstp-test-dlq/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"dbspstp-test-dlq/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.ts index 0c4b1de65..9c1247c18 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-pipes-stepfunctions/test/integ.dbspstp-test-dlq.ts @@ -25,7 +25,7 @@ SetConsistentFeatureFlags(stack); // This function fails ON PURPOSE so that we can test the DLQ functionality in this stack const badFunction = new lambda.Function(stack, 'bad-function', { code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); throw new Error("JUST BREAK");'), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', } ); diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.adoc index 9ab206b45..ba3946215 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.adoc @@ -51,7 +51,7 @@ import * as events from 'aws-cdk-lib/aws-events'; const constructProps: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, eventRuleProps: { @@ -104,7 +104,7 @@ import software.amazon.awsconstructs.services.eventbridgelambda.*; new EventbridgeToLambda(this, "test-eventbridge-lambda", new EventbridgeToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlam-eventbridge-existing-eventbus.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlam-eventbridge-existing-eventbus.assets.json index fd8959852..86d7b8a58 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlam-eventbridge-existing-eventbus.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlam-eventbridge-existing-eventbus.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { + "displayName": "test-eventbridge-lambda/LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "b12cda34ed3194b8872806fb2cc2d7744546f14d1271620a7560b30707e93b64": { + "a97a584da7d8793f019acf9fdf753c358ed91458ae5bbbaf9f858db3503aaa2b": { + "displayName": "evtlam-eventbridge-existing-eventbus Template", "source": { "path": "evtlam-eventbridge-existing-eventbus.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-e0c237c7": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b12cda34ed3194b8872806fb2cc2d7744546f14d1271620a7560b30707e93b64.json", + "objectKey": "a97a584da7d8793f019acf9fdf753c358ed91458ae5bbbaf9f858db3503aaa2b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlam-eventbridge-existing-eventbus.template.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlam-eventbridge-existing-eventbus.template.json index 527fab739..b0a9c37af 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlam-eventbridge-existing-eventbus.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlam-eventbridge-existing-eventbus.template.json @@ -75,7 +75,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -89,7 +89,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlameventbridgeexistingeventbusIntegDefaultTestDeployAssertF331E474.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlameventbridgeexistingeventbusIntegDefaultTestDeployAssertF331E474.assets.json index db55da8a2..74abf1896 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlameventbridgeexistingeventbusIntegDefaultTestDeployAssertF331E474.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/evtlameventbridgeexistingeventbusIntegDefaultTestDeployAssertF331E474.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "evtlameventbridgeexistingeventbusIntegDefaultTestDeployAssertF331E474 Template", "source": { "path": "evtlameventbridgeexistingeventbusIntegDefaultTestDeployAssertF331E474.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/integ.json index ef6281553..33df4c299 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "evtlam-eventbridge-existing-eventbus/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "evtlam-eventbridge-existing-eventbus/Integ/DefaultTest/DeployAssert", "assertionStackName": "evtlameventbridgeexistingeventbusIntegDefaultTestDeployAssertF331E474" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/manifest.json index d99bd2e2a..b1c0f67f5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "evtlameventbridgeexistingeventbusIntegDefaultTestDeployAssertF331E474.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b12cda34ed3194b8872806fb2cc2d7744546f14d1271620a7560b30707e93b64.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a97a584da7d8793f019acf9fdf753c358ed91458ae5bbbaf9f858db3503aaa2b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -255,15 +255,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "testeventbridgelambdaLambdaFunctionServiceRoleDefaultPolicyB0C15F1B": [ - { - "type": "aws:cdk:logicalId", - "data": "testeventbridgelambdaLambdaFunctionServiceRoleDefaultPolicyB0C15F1B", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "evtlam-eventbridge-existing-eventbus" @@ -273,7 +264,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/tree.json index 8f3eb06dc..179c4bf36 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-existing-eventbus.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"evtlam-eventbridge-existing-eventbus":{"id":"evtlam-eventbridge-existing-eventbus","path":"evtlam-eventbridge-existing-eventbus","children":{"existing-event-bus":{"id":"existing-event-bus","path":"evtlam-eventbridge-existing-eventbus/existing-event-bus","children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/existing-event-bus/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"test-existing-lambda"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.186.0","metadata":[{}]}},"test-eventbridge-lambda":{"id":"test-eventbridge-lambda","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgelambdaLambdaFunctioninlinePolicyAddedToExecutionRole032228887","roles":[{"Ref":"testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"AwsEventsLambdaInvokePermission-1":{"id":"AwsEventsLambdaInvokePermission-1","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/AwsEventsLambdaInvokePermission-1","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]},"principal":"events.amazonaws.com","sourceArn":{"Fn::GetAtt":["testeventbridgelambdaEventsRule7DB0954D","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"EventsRule":{"id":"EventsRule","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/EventsRule","children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/EventsRule/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventBusName":{"Ref":"existingeventbusA5B80487"},"eventPattern":{"source":["solutionsconstructs"]},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.186.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*"}},{"addEventPattern":[{"source":"*"}]},{"addTarget":[{}]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-lambda.EventbridgeToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"evtlam-eventbridge-existing-eventbus/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-existing-eventbus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-existing-eventbus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"evtlam-eventbridge-existing-eventbus":{"id":"evtlam-eventbridge-existing-eventbus","path":"evtlam-eventbridge-existing-eventbus","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"existing-event-bus":{"id":"existing-event-bus","path":"evtlam-eventbridge-existing-eventbus/existing-event-bus","constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.223.0","metadata":[{}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/existing-event-bus/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"test-existing-lambda"}}}}},"test-eventbridge-lambda":{"id":"test-eventbridge-lambda","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-lambda.EventbridgeToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgelambdaLambdaFunctioninlinePolicyAddedToExecutionRole032228887","roles":[{"Ref":"testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE"}]}}}}},"AwsEventsLambdaInvokePermission-1":{"id":"AwsEventsLambdaInvokePermission-1","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/LambdaFunction/AwsEventsLambdaInvokePermission-1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]},"principal":"events.amazonaws.com","sourceArn":{"Fn::GetAtt":["testeventbridgelambdaEventsRule7DB0954D","Arn"]}}}}}},"EventsRule":{"id":"EventsRule","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*"}},{"addEventPattern":[{"source":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-existing-eventbus/test-eventbridge-lambda/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventBusName":{"Ref":"existingeventbusA5B80487"},"eventPattern":{"source":["solutionsconstructs"]},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]}}]}}}}}}},"Integ":{"id":"Integ","path":"evtlam-eventbridge-existing-eventbus/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-existing-eventbus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-existing-eventbus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-existing-eventbus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlam-eventbridge-new-eventbus.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlam-eventbridge-new-eventbus.assets.json index b8664ffca..6c5ac3349 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlam-eventbridge-new-eventbus.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlam-eventbridge-new-eventbus.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { + "displayName": "test-eventbridge-lambda/LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "27d76740c058fa3d684bc5524c55ad4338b8e7cf9f3744d96450316d4d153705": { + "65d646c03928d699df0b08b8ca68f1d36e31ea11e9a32a680c2cc55adb737524": { + "displayName": "evtlam-eventbridge-new-eventbus Template", "source": { "path": "evtlam-eventbridge-new-eventbus.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-f92d3400": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "27d76740c058fa3d684bc5524c55ad4338b8e7cf9f3744d96450316d4d153705.json", + "objectKey": "65d646c03928d699df0b08b8ca68f1d36e31ea11e9a32a680c2cc55adb737524.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlam-eventbridge-new-eventbus.template.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlam-eventbridge-new-eventbus.template.json index 32b575f85..2dacd4f6e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlam-eventbridge-new-eventbus.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlam-eventbridge-new-eventbus.template.json @@ -69,7 +69,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -83,7 +83,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlameventbridgeneweventbusIntegDefaultTestDeployAssert45FE6822.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlameventbridgeneweventbusIntegDefaultTestDeployAssert45FE6822.assets.json index 82140cb04..49e34a39e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlameventbridgeneweventbusIntegDefaultTestDeployAssert45FE6822.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/evtlameventbridgeneweventbusIntegDefaultTestDeployAssert45FE6822.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "evtlameventbridgeneweventbusIntegDefaultTestDeployAssert45FE6822 Template", "source": { "path": "evtlameventbridgeneweventbusIntegDefaultTestDeployAssert45FE6822.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/integ.json index 15309e8d9..e82bf73a2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "evtlam-eventbridge-new-eventbus/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "evtlam-eventbridge-new-eventbus/Integ/DefaultTest/DeployAssert", "assertionStackName": "evtlameventbridgeneweventbusIntegDefaultTestDeployAssert45FE6822" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/manifest.json index c58f16d2b..ffe4e376f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "evtlameventbridgeneweventbusIntegDefaultTestDeployAssert45FE6822.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/27d76740c058fa3d684bc5524c55ad4338b8e7cf9f3744d96450316d4d153705.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/65d646c03928d699df0b08b8ca68f1d36e31ea11e9a32a680c2cc55adb737524.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -255,15 +255,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "testeventbridgelambdaLambdaFunctionServiceRoleDefaultPolicyB0C15F1B": [ - { - "type": "aws:cdk:logicalId", - "data": "testeventbridgelambdaLambdaFunctionServiceRoleDefaultPolicyB0C15F1B", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "evtlam-eventbridge-new-eventbus" @@ -273,7 +264,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/tree.json index f6087f574..4714d1ad4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-new-eventbus.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"evtlam-eventbridge-new-eventbus":{"id":"evtlam-eventbridge-new-eventbus","path":"evtlam-eventbridge-new-eventbus","children":{"test-eventbridge-lambda":{"id":"test-eventbridge-lambda","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgelambdaLambdaFunctioninlinePolicyAddedToExecutionRole032228887","roles":[{"Ref":"testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"AwsEventsLambdaInvokePermission-1":{"id":"AwsEventsLambdaInvokePermission-1","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/AwsEventsLambdaInvokePermission-1","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]},"principal":"events.amazonaws.com","sourceArn":{"Fn::GetAtt":["testeventbridgelambdaEventsRule7DB0954D","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"test-new-lambda":{"id":"test-new-lambda","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/test-new-lambda","children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/test-new-lambda/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"test-new-lambda"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.186.0","metadata":[{}]}},"EventsRule":{"id":"EventsRule","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/EventsRule","children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/EventsRule/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventBusName":{"Ref":"testeventbridgelambdatestnewlambdaA726ECBB"},"eventPattern":{"source":["solutionsconstructs"]},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.186.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*"}},{"addEventPattern":[{"source":"*"}]},{"addTarget":[{}]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-lambda.EventbridgeToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"evtlam-eventbridge-new-eventbus/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-new-eventbus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-new-eventbus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"evtlam-eventbridge-new-eventbus":{"id":"evtlam-eventbridge-new-eventbus","path":"evtlam-eventbridge-new-eventbus","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-eventbridge-lambda":{"id":"test-eventbridge-lambda","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-lambda.EventbridgeToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgelambdaLambdaFunctioninlinePolicyAddedToExecutionRole032228887","roles":[{"Ref":"testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE"}]}}}}},"AwsEventsLambdaInvokePermission-1":{"id":"AwsEventsLambdaInvokePermission-1","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/LambdaFunction/AwsEventsLambdaInvokePermission-1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]},"principal":"events.amazonaws.com","sourceArn":{"Fn::GetAtt":["testeventbridgelambdaEventsRule7DB0954D","Arn"]}}}}}},"test-new-lambda":{"id":"test-new-lambda","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/test-new-lambda","constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.223.0","metadata":[{}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/test-new-lambda/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"test-new-lambda"}}}}},"EventsRule":{"id":"EventsRule","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*"}},{"addEventPattern":[{"source":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-new-eventbus/test-eventbridge-lambda/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventBusName":{"Ref":"testeventbridgelambdatestnewlambdaA726ECBB"},"eventPattern":{"source":["solutionsconstructs"]},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]}}]}}}}}}},"Integ":{"id":"Integ","path":"evtlam-eventbridge-new-eventbus/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-new-eventbus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-new-eventbus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-new-eventbus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlam-eventbridge-no-argument.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlam-eventbridge-no-argument.assets.json index b31243ff4..66033e132 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlam-eventbridge-no-argument.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlam-eventbridge-no-argument.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "test-eventbridge-lambda/LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "065fd5a9f3bee5a5abc95c7223c350f13a3eb606c0487ddc33dfdf8baf586ce1": { + "1d9e914187c2c83ca4a25c019359780f5b866ffc3748333eb44481188ef2fe2c": { "displayName": "evtlam-eventbridge-no-argument Template", "source": { "path": "evtlam-eventbridge-no-argument.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-2a989052": { + "current_account-current_region-2cd6e1d9": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "065fd5a9f3bee5a5abc95c7223c350f13a3eb606c0487ddc33dfdf8baf586ce1.json", + "objectKey": "1d9e914187c2c83ca4a25c019359780f5b866ffc3748333eb44481188ef2fe2c.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlam-eventbridge-no-argument.template.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlam-eventbridge-no-argument.template.json index dc38073b2..f54373639 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlam-eventbridge-no-argument.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlam-eventbridge-no-argument.template.json @@ -69,7 +69,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -83,7 +83,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlameventbridgenoargumentIntegDefaultTestDeployAssert5D6CC728.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlameventbridgenoargumentIntegDefaultTestDeployAssert5D6CC728.assets.json index 102bd009a..056665402 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlameventbridgenoargumentIntegDefaultTestDeployAssert5D6CC728.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/evtlameventbridgenoargumentIntegDefaultTestDeployAssert5D6CC728.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "evtlameventbridgenoargumentIntegDefaultTestDeployAssert5D6CC728 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/integ.json index c7cc1282e..9d1fec261 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "evtlam-eventbridge-no-argument/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "evtlameventbridgenoargumentIntegDefaultTestDeployAssert5D6CC728" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/manifest.json index 6cf60e8dd..50566cada 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/065fd5a9f3bee5a5abc95c7223c350f13a3eb606c0487ddc33dfdf8baf586ce1.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/1d9e914187c2c83ca4a25c019359780f5b866ffc3748333eb44481188ef2fe2c.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -254,57 +254,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -313,7 +304,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -390,7 +384,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -534,7 +528,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -563,7 +560,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -627,7 +627,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -661,7 +664,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -684,7 +690,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -714,6 +723,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/tree.json index 6f5d7bfd2..b7052951b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.evtlam-eventbridge-no-argument.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"evtlam-eventbridge-no-argument":{"id":"evtlam-eventbridge-no-argument","path":"evtlam-eventbridge-no-argument","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"test-eventbridge-lambda":{"id":"test-eventbridge-lambda","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-lambda.EventbridgeToLambda","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgelambdaLambdaFunctioninlinePolicyAddedToExecutionRole032228887","roles":[{"Ref":"testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE"}]}}}}},"AwsEventsLambdaInvokePermission-1":{"id":"AwsEventsLambdaInvokePermission-1","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/AwsEventsLambdaInvokePermission-1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]},"principal":"events.amazonaws.com","sourceArn":{"Fn::GetAtt":["testeventbridgelambdaEventsRule7DB0954D","Arn"]}}}}}},"EventsRule":{"id":"EventsRule","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.206.0","metadata":[{"targets":"*","eventBus":"*","schedule":"*"},{"addEventPattern":["*"]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"scheduleExpression":"rate(5 minutes)","state":"ENABLED","targets":[{"id":"Target0","arn":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]}}]}}}}}}},"Integ":{"id":"Integ","path":"evtlam-eventbridge-no-argument/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-no-argument/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-no-argument/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"evtlam-eventbridge-no-argument":{"id":"evtlam-eventbridge-no-argument","path":"evtlam-eventbridge-no-argument","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-eventbridge-lambda":{"id":"test-eventbridge-lambda","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-lambda.EventbridgeToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgelambdaLambdaFunctioninlinePolicyAddedToExecutionRole032228887","roles":[{"Ref":"testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE"}]}}}}},"AwsEventsLambdaInvokePermission-1":{"id":"AwsEventsLambdaInvokePermission-1","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/LambdaFunction/AwsEventsLambdaInvokePermission-1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]},"principal":"events.amazonaws.com","sourceArn":{"Fn::GetAtt":["testeventbridgelambdaEventsRule7DB0954D","Arn"]}}}}}},"EventsRule":{"id":"EventsRule","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","schedule":"*"},{"addEventPattern":["*"]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtlam-eventbridge-no-argument/test-eventbridge-lambda/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"scheduleExpression":"rate(5 minutes)","state":"ENABLED","targets":[{"id":"Target0","arn":{"Fn::GetAtt":["testeventbridgelambdaLambdaFunction475423FD","Arn"]}}]}}}}}}},"Integ":{"id":"Integ","path":"evtlam-eventbridge-no-argument/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-no-argument/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtlam-eventbridge-no-argument/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtlam-eventbridge-no-argument/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-existing-eventbus.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-existing-eventbus.assets.json index 4a6746f3c..2d66e4c3f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-existing-eventbus.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-existing-eventbus.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { + "displayName": "LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "9bbe152e085c8c4422f15197558a5b246997ed031ec17d41964eba01753ae88d": { + "d83bcfb86902434ea31e2656e681bd1627f8ecf50fc2b18411c6ef9e3dda7cdb": { + "displayName": "evtstp-eventbridge-stepfunctions-existing-eventbus Template", "source": { "path": "evtstp-eventbridge-stepfunctions-existing-eventbus.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-b4aa253d": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "9bbe152e085c8c4422f15197558a5b246997ed031ec17d41964eba01753ae88d.json", + "objectKey": "d83bcfb86902434ea31e2656e681bd1627f8ecf50fc2b18411c6ef9e3dda7cdb.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-existing-eventbus.template.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-existing-eventbus.template.json index a49071c2f..6ce74799a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-existing-eventbus.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-existing-eventbus.template.json @@ -69,7 +69,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -83,7 +83,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstpeventbridgestepfunctionsexistingeventbusIntegDefaultTestDeployAssertE502913F.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstpeventbridgestepfunctionsexistingeventbusIntegDefaultTestDeployAssertE502913F.assets.json index 034124d82..12ffeee0a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstpeventbridgestepfunctionsexistingeventbusIntegDefaultTestDeployAssertE502913F.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/evtstpeventbridgestepfunctionsexistingeventbusIntegDefaultTestDeployAssertE502913F.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "evtstpeventbridgestepfunctionsexistingeventbusIntegDefaultTestDeployAssertE502913F Template", "source": { "path": "evtstpeventbridgestepfunctionsexistingeventbusIntegDefaultTestDeployAssertE502913F.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/integ.json index 11ef95b95..84f392468 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest/DeployAssert", "assertionStackName": "evtstpeventbridgestepfunctionsexistingeventbusIntegDefaultTestDeployAssertE502913F" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/manifest.json index 934980de9..88f60686d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "evtstpeventbridgestepfunctionsexistingeventbusIntegDefaultTestDeployAssertE502913F.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9bbe152e085c8c4422f15197558a5b246997ed031ec17d41964eba01753ae88d.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d83bcfb86902434ea31e2656e681bd1627f8ecf50fc2b18411c6ef9e3dda7cdb.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -357,7 +357,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -377,7 +378,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -397,7 +399,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -542,15 +545,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "LambdaFunctionServiceRoleDefaultPolicy126C8897": [ - { - "type": "aws:cdk:logicalId", - "data": "LambdaFunctionServiceRoleDefaultPolicy126C8897", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "evtstp-eventbridge-stepfunctions-existing-eventbus" @@ -560,7 +554,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/tree.json index 43d863dbb..4023c902c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-existing-eventbus.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"evtstp-eventbridge-stepfunctions-existing-eventbus":{"id":"evtstp-eventbridge-stepfunctions-existing-eventbus","path":"evtstp-eventbridge-stepfunctions-existing-eventbus","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction","children":{"Code":{"id":"Code","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","code":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"LambdaTask":{"id":"LambdaTask","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaTask","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.186.0"}},"StartState":{"id":"StartState","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/StartState","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.Pass","version":"2.186.0"}},"existing-event-bus":{"id":"existing-event-bus","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/existing-event-bus","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/existing-event-bus/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"test-existing"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.186.0","metadata":[{}]}},"test-eventbridge-stepfunctions-new-eventbus-construct":{"id":"test-eventbridge-stepfunctions-new-eventbus-construct","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct","children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachineLogGroup","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachineLogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/evtstp-eventbridge-stepfunctions-existing-eventbustest-eventbridge-stepfunctions-new-eventbus-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]}},"StateMachine":{"id":"StateMachine","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine","children":{"Role":{"id":"Role","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role","children":{"ImportRole":{"id":"ImportRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsneweventbusconstructStateMachineRoleDefaultPolicy24AE094F","roles":[{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachineRole88F30AE1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"StartState\",\"States\":{\"StartState\":{\"Type\":\"Pass\",\"Next\":\"LambdaTask\"},\"LambdaTask\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"\",\"Payload.$\":\"$\"}}},\"TimeoutSeconds\":300}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructStateMachineLogGroup6DC6AD59","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructStateMachineRole88F30AE1","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.186.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*","timeout":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionFailedAlarm","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionFailedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionThrottledAlarm","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionThrottledAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionAbortedAlarm","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionAbortedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"EventsRuleRole":{"id":"EventsRuleRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole","children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleDefaultPolicyDEB2E89C","roles":[{"Ref":"testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleA589CEFC"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"EventsRule":{"id":"EventsRule","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRule","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRule/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventBusName":{"Ref":"existingeventbusA5B80487"},"eventPattern":{"source":["solutionsconstructs"]},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleA589CEFC","Arn"]}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.186.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*"}},{"addEventPattern":[{"source":"*"}]},{"addTarget":[{}]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.80.0"}},"Integ":{"id":"Integ","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"evtstp-eventbridge-stepfunctions-existing-eventbus":{"id":"evtstp-eventbridge-stepfunctions-existing-eventbus","path":"evtstp-eventbridge-stepfunctions-existing-eventbus","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","code":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaTask":{"id":"LambdaTask","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/LambdaTask","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"StartState":{"id":"StartState","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/StartState","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.Pass","version":"2.223.0"}},"existing-event-bus":{"id":"existing-event-bus","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/existing-event-bus","constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.223.0","metadata":[{}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/existing-event-bus/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"test-existing"}}}}},"test-eventbridge-stepfunctions-new-eventbus-construct":{"id":"test-eventbridge-stepfunctions-new-eventbus-construct","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/evtstp-eventbridge-stepfunctions-existing-eventbustest-eventbridge-stepfunctions-new-eventbus-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*","timeout":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsneweventbusconstructStateMachineRoleDefaultPolicy24AE094F","roles":[{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachineRole88F30AE1"}]}}}}}}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"StartState\",\"States\":{\"StartState\":{\"Type\":\"Pass\",\"Next\":\"LambdaTask\"},\"LambdaTask\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"\",\"Payload.$\":\"$\"}}},\"TimeoutSeconds\":300}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructStateMachineLogGroup6DC6AD59","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructStateMachineRole88F30AE1","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleDefaultPolicyDEB2E89C","roles":[{"Ref":"testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleA589CEFC"}]}}}}}}},"EventsRule":{"id":"EventsRule","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*"}},{"addEventPattern":[{"source":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventBusName":{"Ref":"existingeventbusA5B80487"},"eventPattern":{"source":["solutionsconstructs"]},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleA589CEFC","Arn"]}}]}}}}}}},"Integ":{"id":"Integ","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-existing-eventbus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-new-eventbus.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-new-eventbus.assets.json index 4eb0f00ff..0dbe8fc09 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-new-eventbus.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-new-eventbus.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { + "displayName": "LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "6ba6c136085ae58b58dfef95a419fbdd766ec5c6aeb1243af16ef2c6a621899d": { + "da1a28d8b9418de349ef7233035e354b1996310fd9312edf73e039df7041343f": { + "displayName": "evtstp-eventbridge-stepfunctions-new-eventbus Template", "source": { "path": "evtstp-eventbridge-stepfunctions-new-eventbus.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-db2ba139": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "6ba6c136085ae58b58dfef95a419fbdd766ec5c6aeb1243af16ef2c6a621899d.json", + "objectKey": "da1a28d8b9418de349ef7233035e354b1996310fd9312edf73e039df7041343f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-new-eventbus.template.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-new-eventbus.template.json index 481b508e6..93981af2a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-new-eventbus.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstp-eventbridge-stepfunctions-new-eventbus.template.json @@ -69,7 +69,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -83,7 +83,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstpeventbridgestepfunctionsneweventbusIntegDefaultTestDeployAssertAC882153.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstpeventbridgestepfunctionsneweventbusIntegDefaultTestDeployAssertAC882153.assets.json index a8a06509e..ff6fd5d87 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstpeventbridgestepfunctionsneweventbusIntegDefaultTestDeployAssertAC882153.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/evtstpeventbridgestepfunctionsneweventbusIntegDefaultTestDeployAssertAC882153.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "evtstpeventbridgestepfunctionsneweventbusIntegDefaultTestDeployAssertAC882153 Template", "source": { "path": "evtstpeventbridgestepfunctionsneweventbusIntegDefaultTestDeployAssertAC882153.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/integ.json index a2ee3138a..07b8addc8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest/DeployAssert", "assertionStackName": "evtstpeventbridgestepfunctionsneweventbusIntegDefaultTestDeployAssertAC882153" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/manifest.json index 5860e35c8..f2762b0c3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "evtstpeventbridgestepfunctionsneweventbusIntegDefaultTestDeployAssertAC882153.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6ba6c136085ae58b58dfef95a419fbdd766ec5c6aeb1243af16ef2c6a621899d.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/da1a28d8b9418de349ef7233035e354b1996310fd9312edf73e039df7041343f.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -345,7 +345,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -365,7 +366,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -385,7 +387,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -542,15 +545,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "LambdaFunctionServiceRoleDefaultPolicy126C8897": [ - { - "type": "aws:cdk:logicalId", - "data": "LambdaFunctionServiceRoleDefaultPolicy126C8897", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "evtstp-eventbridge-stepfunctions-new-eventbus" @@ -560,7 +554,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/tree.json index 465bcab8a..ac9aae2fc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-new-eventbus.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"evtstp-eventbridge-stepfunctions-new-eventbus":{"id":"evtstp-eventbridge-stepfunctions-new-eventbus","path":"evtstp-eventbridge-stepfunctions-new-eventbus","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction","children":{"Code":{"id":"Code","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","code":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"LambdaTask":{"id":"LambdaTask","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaTask","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.186.0"}},"StartState":{"id":"StartState","path":"evtstp-eventbridge-stepfunctions-new-eventbus/StartState","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.Pass","version":"2.186.0"}},"test-eventbridge-stepfunctions-new-eventbus-construct":{"id":"test-eventbridge-stepfunctions-new-eventbus-construct","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct","children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachineLogGroup","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachineLogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/evtstp-eventbridge-stepfunctions-new-eventbustest-eventbridge-stepfunctions-new-eventbus-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]}},"StateMachine":{"id":"StateMachine","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine","children":{"Role":{"id":"Role","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role","children":{"ImportRole":{"id":"ImportRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsneweventbusconstructStateMachineRoleDefaultPolicy24AE094F","roles":[{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachineRole88F30AE1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"StartState\",\"States\":{\"StartState\":{\"Type\":\"Pass\",\"Next\":\"LambdaTask\"},\"LambdaTask\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"\",\"Payload.$\":\"$\"}}},\"TimeoutSeconds\":300}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructStateMachineLogGroup6DC6AD59","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructStateMachineRole88F30AE1","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.186.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*","timeout":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionFailedAlarm","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionFailedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionThrottledAlarm","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionThrottledAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionAbortedAlarm","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionAbortedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"EventsRuleRole":{"id":"EventsRuleRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole","children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleDefaultPolicyDEB2E89C","roles":[{"Ref":"testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleA589CEFC"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"test-new":{"id":"test-new","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/test-new","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/test-new/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"test-new"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.186.0","metadata":[{}]}},"EventsRule":{"id":"EventsRule","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRule","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRule/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventBusName":{"Ref":"testeventbridgestepfunctionsneweventbusconstructtestnewA01E6B5C"},"eventPattern":{"source":["solutionsconstructs"]},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleA589CEFC","Arn"]}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.186.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*"}},{"addEventPattern":[{"source":"*"}]},{"addTarget":[{}]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.80.0"}},"Integ":{"id":"Integ","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-new-eventbus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-new-eventbus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"evtstp-eventbridge-stepfunctions-new-eventbus":{"id":"evtstp-eventbridge-stepfunctions-new-eventbus","path":"evtstp-eventbridge-stepfunctions-new-eventbus","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","code":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaTask":{"id":"LambdaTask","path":"evtstp-eventbridge-stepfunctions-new-eventbus/LambdaTask","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"StartState":{"id":"StartState","path":"evtstp-eventbridge-stepfunctions-new-eventbus/StartState","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.Pass","version":"2.223.0"}},"test-eventbridge-stepfunctions-new-eventbus-construct":{"id":"test-eventbridge-stepfunctions-new-eventbus-construct","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/evtstp-eventbridge-stepfunctions-new-eventbustest-eventbridge-stepfunctions-new-eventbus-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*","timeout":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsneweventbusconstructStateMachineRoleDefaultPolicy24AE094F","roles":[{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachineRole88F30AE1"}]}}}}}}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"StartState\",\"States\":{\"StartState\":{\"Type\":\"Pass\",\"Next\":\"LambdaTask\"},\"LambdaTask\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"\",\"Payload.$\":\"$\"}}},\"TimeoutSeconds\":300}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructStateMachineLogGroup6DC6AD59","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructStateMachineRole88F30AE1","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"}}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleDefaultPolicyDEB2E89C","roles":[{"Ref":"testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleA589CEFC"}]}}}}}}},"test-new":{"id":"test-new","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/test-new","constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.223.0","metadata":[{}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/test-new/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"test-new"}}}}},"EventsRule":{"id":"EventsRule","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*"}},{"addEventPattern":[{"source":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-new-eventbus/test-eventbridge-stepfunctions-new-eventbus-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventBusName":{"Ref":"testeventbridgestepfunctionsneweventbusconstructtestnewA01E6B5C"},"eventPattern":{"source":["solutionsconstructs"]},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"testeventbridgestepfunctionsneweventbusconstructStateMachine5B0C5609"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsneweventbusconstructEventsRuleRoleA589CEFC","Arn"]}}]}}}}}}},"Integ":{"id":"Integ","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-new-eventbus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-new-eventbus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-new-eventbus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/cdk.out index 1f0068d32..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"36.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstp-eventbridge-stepfunctions-no-argument.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstp-eventbridge-stepfunctions-no-argument.assets.json index fb0348a45..f68a82446 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstp-eventbridge-stepfunctions-no-argument.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstp-eventbridge-stepfunctions-no-argument.assets.json @@ -1,15 +1,16 @@ { - "version": "36.0.0", + "version": "48.0.0", "files": { - "3ee19f3663e5a44e84e5cf133c440650eea54c79b4c1e3f5b115e7a346b3de2b": { + "af638c9225efe095e048a696f41c28fb2e1169be077b993fc70a2e43152204f9": { + "displayName": "evtstp-eventbridge-stepfunctions-no-argument Template", "source": { "path": "evtstp-eventbridge-stepfunctions-no-argument.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-0b87d42b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3ee19f3663e5a44e84e5cf133c440650eea54c79b4c1e3f5b115e7a346b3de2b.json", + "objectKey": "af638c9225efe095e048a696f41c28fb2e1169be077b993fc70a2e43152204f9.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstp-eventbridge-stepfunctions-no-argument.template.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstp-eventbridge-stepfunctions-no-argument.template.json index a9f9a3caf..3e826b232 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstp-eventbridge-stepfunctions-no-argument.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstp-eventbridge-stepfunctions-no-argument.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdaevtstptestServiceRole57CC5BE7" @@ -244,67 +244,6 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete" }, - "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "events.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "testeventbridgestepfunctionsconstructEventsRuleRoleDefaultPolicyC40CE54A": { - "Type": "AWS::IAM::Policy", - "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testeventbridgestepfunctionsconstructStateMachine08688697" - } - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "testeventbridgestepfunctionsconstructEventsRuleRoleDefaultPolicyC40CE54A", - "Roles": [ - { - "Ref": "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A" - } - ] - } - }, - "testeventbridgestepfunctionsconstructEventsRuleECA8B70F": { - "Type": "AWS::Events::Rule", - "Properties": { - "ScheduleExpression": "rate(5 minutes)", - "State": "ENABLED", - "Targets": [ - { - "Arn": { - "Ref": "testeventbridgestepfunctionsconstructStateMachine08688697" - }, - "Id": "Target0", - "RoleArn": { - "Fn::GetAtt": [ - "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A", - "Arn" - ] - } - } - ] - } - }, "testeventbridgestepfunctionsconstructExecutionFailedAlarm57DF694C": { "Type": "AWS::CloudWatch::Alarm", "Properties": { @@ -367,6 +306,67 @@ "Statistic": "Maximum", "Threshold": 1 } + }, + "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "testeventbridgestepfunctionsconstructEventsRuleRoleDefaultPolicyC40CE54A": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "states:StartExecution", + "Effect": "Allow", + "Resource": { + "Ref": "testeventbridgestepfunctionsconstructStateMachine08688697" + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testeventbridgestepfunctionsconstructEventsRuleRoleDefaultPolicyC40CE54A", + "Roles": [ + { + "Ref": "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A" + } + ] + } + }, + "testeventbridgestepfunctionsconstructEventsRuleECA8B70F": { + "Type": "AWS::Events::Rule", + "Properties": { + "ScheduleExpression": "rate(5 minutes)", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Ref": "testeventbridgestepfunctionsconstructStateMachine08688697" + }, + "Id": "Target0", + "RoleArn": { + "Fn::GetAtt": [ + "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A", + "Arn" + ] + } + } + ] + } } }, "Parameters": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstpeventbridgestepfunctionsnoargumentIntegDefaultTestDeployAssertC11044AB.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstpeventbridgestepfunctionsnoargumentIntegDefaultTestDeployAssertC11044AB.assets.json index a3137ba7e..5861145ff 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstpeventbridgestepfunctionsnoargumentIntegDefaultTestDeployAssertC11044AB.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/evtstpeventbridgestepfunctionsnoargumentIntegDefaultTestDeployAssertC11044AB.assets.json @@ -1,13 +1,14 @@ { - "version": "36.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "evtstpeventbridgestepfunctionsnoargumentIntegDefaultTestDeployAssertC11044AB Template", "source": { "path": "evtstpeventbridgestepfunctionsnoargumentIntegDefaultTestDeployAssertC11044AB.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/integ.json index 823fe8540..1ac9f9b05 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "36.0.0", + "version": "48.0.0", "testCases": { "evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert", "assertionStackName": "evtstpeventbridgestepfunctionsnoargumentIntegDefaultTestDeployAssertC11044AB" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/manifest.json index 9bbcad8a3..896fb5df8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "36.0.0", + "version": "48.0.0", "artifacts": { "evtstpeventbridgestepfunctionsnoargumentIntegDefaultTestDeployAssertC11044AB.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3ee19f3663e5a44e84e5cf133c440650eea54c79b4c1e3f5b115e7a346b3de2b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/af638c9225efe095e048a696f41c28fb2e1169be077b993fc70a2e43152204f9.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -82,6 +82,38 @@ "evtstp-eventbridge-stepfunctions-no-argument.assets" ], "metadata": { + "/evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -94,18 +126,143 @@ "data": "lambdaevtstptest4DAE33D9" } ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "removalPolicy": "destroy", + "logGroupName": "*" + } + } + ], "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testeventbridgestepfunctionsconstructStateMachineLogGroup3098B32C" } ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testeventbridgestepfunctionsconstructStateMachineRoleED595422" } ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -118,40 +275,182 @@ "data": "testeventbridgestepfunctionsconstructStateMachine08688697" } ], - "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/Resource": [ + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", - "data": "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A" + "data": "testeventbridgestepfunctionsconstructExecutionFailedAlarm57DF694C" } ], - "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/DefaultPolicy/Resource": [ + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", - "data": "testeventbridgestepfunctionsconstructEventsRuleRoleDefaultPolicyC40CE54A" + "data": "testeventbridgestepfunctionsconstructExecutionThrottledAlarmE43E1426" } ], - "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRule/Resource": [ + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", - "data": "testeventbridgestepfunctionsconstructEventsRuleECA8B70F" + "data": "testeventbridgestepfunctionsconstructExecutionAbortedAlarmAACA66A8" } ], - "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionFailedAlarm/Resource": [ + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/ImportEventsRuleRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/Resource": [ { "type": "aws:cdk:logicalId", - "data": "testeventbridgestepfunctionsconstructExecutionFailedAlarm57DF694C" + "data": "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A" } ], - "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionThrottledAlarm/Resource": [ + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", - "data": "testeventbridgestepfunctionsconstructExecutionThrottledAlarmE43E1426" + "data": "testeventbridgestepfunctionsconstructEventsRuleRoleDefaultPolicyC40CE54A" } ], - "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionAbortedAlarm/Resource": [ + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRule": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "targets": "*", + "eventBus": "*", + "schedule": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEventPattern": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addTarget": [ + {} + ] + } + } + ], + "/evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRule/Resource": [ { "type": "aws:cdk:logicalId", - "data": "testeventbridgestepfunctionsconstructExecutionAbortedAlarmAACA66A8" + "data": "testeventbridgestepfunctionsconstructEventsRuleECA8B70F" } ], "/evtstp-eventbridge-stepfunctions-no-argument/BootstrapVersion": [ @@ -174,6 +473,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/tree.json index 2a29a96f2..a0096c943 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-no-argument.js.snapshot/tree.json @@ -1,674 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "evtstp-eventbridge-stepfunctions-no-argument": { - "id": "evtstp-eventbridge-stepfunctions-no-argument", - "path": "evtstp-eventbridge-stepfunctions-no-argument", - "children": { - "lambdaevtstp-test": { - "id": "lambdaevtstp-test", - "path": "evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.150.0" - } - }, - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.150.0" - } - }, - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdaevtstptestServiceRole57CC5BE7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.150.0" - } - }, - "taskevtstp-test": { - "id": "taskevtstp-test", - "path": "evtstp-eventbridge-stepfunctions-no-argument/taskevtstp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.150.0" - } - }, - "test-eventbridge-stepfunctions-construct": { - "id": "test-eventbridge-stepfunctions-construct", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct", - "children": { - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/evtstp-eventbridge-stepfunctions-no-argumenttest-eventbridge-stepfunctions-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.150.0" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.150.0" - } - }, - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.150.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdaevtstptest4DAE33D9", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdaevtstptest4DAE33D9", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testeventbridgestepfunctionsconstructStateMachineRoleDefaultPolicyBA8BB0B3", - "roles": [ - { - "Ref": "testeventbridgestepfunctionsconstructStateMachineRoleED595422" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.150.0" - } - }, - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"taskevtstp-test\",\"States\":{\"taskevtstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdaevtstptest4DAE33D9", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testeventbridgestepfunctionsconstructStateMachineLogGroup3098B32C", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testeventbridgestepfunctionsconstructStateMachineRoleED595422", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.150.0" - } - }, - "EventsRuleRole": { - "id": "EventsRuleRole", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole", - "children": { - "ImportEventsRuleRole": { - "id": "ImportEventsRuleRole", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/ImportEventsRuleRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.150.0" - } - }, - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "events.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.150.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testeventbridgestepfunctionsconstructStateMachine08688697" - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "testeventbridgestepfunctionsconstructEventsRuleRoleDefaultPolicyC40CE54A", - "roles": [ - { - "Ref": "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.150.0" - } - }, - "EventsRule": { - "id": "EventsRule", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRule", - "children": { - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRule/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Events::Rule", - "aws:cdk:cloudformation:props": { - "scheduleExpression": "rate(5 minutes)", - "state": "ENABLED", - "targets": [ - { - "id": "Target0", - "arn": { - "Ref": "testeventbridgestepfunctionsconstructStateMachine08688697" - }, - "roleArn": { - "Fn::GetAtt": [ - "testeventbridgestepfunctionsconstructEventsRuleRole18E9101A", - "Arn" - ] - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_events.CfnRule", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_events.Rule", - "version": "2.150.0" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testeventbridgestepfunctionsconstructStateMachine08688697" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.150.0" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testeventbridgestepfunctionsconstructStateMachine08688697" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.150.0" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testeventbridgestepfunctionsconstructStateMachine08688697" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions", - "version": "2.63.0" - } - }, - "Integ": { - "id": "Integ", - "path": "evtstp-eventbridge-stepfunctions-no-argument/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.3.0" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.150.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.150.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.150.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "evtstp-eventbridge-stepfunctions-no-argument/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.150.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "evtstp-eventbridge-stepfunctions-no-argument/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.150.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.3.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.150.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"evtstp-eventbridge-stepfunctions-no-argument":{"id":"evtstp-eventbridge-stepfunctions-no-argument","path":"evtstp-eventbridge-stepfunctions-no-argument","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdaevtstp-test":{"id":"lambdaevtstp-test","path":"evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/lambdaevtstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdaevtstptestServiceRole57CC5BE7","Arn"]},"runtime":"nodejs22.x"}}}}},"taskevtstp-test":{"id":"taskevtstp-test","path":"evtstp-eventbridge-stepfunctions-no-argument/taskevtstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-eventbridge-stepfunctions-construct":{"id":"test-eventbridge-stepfunctions-construct","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/evtstp-eventbridge-stepfunctions-no-argumenttest-eventbridge-stepfunctions-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdaevtstptest4DAE33D9","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdaevtstptest4DAE33D9","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsconstructStateMachineRoleDefaultPolicyBA8BB0B3","roles":[{"Ref":"testeventbridgestepfunctionsconstructStateMachineRoleED595422"}]}}}}}}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskevtstp-test\",\"States\":{\"taskevtstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdaevtstptest4DAE33D9","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testeventbridgestepfunctionsconstructStateMachineLogGroup3098B32C","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsconstructStateMachineRoleED595422","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsconstructStateMachine08688697"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsconstructStateMachine08688697"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsconstructStateMachine08688697"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testeventbridgestepfunctionsconstructStateMachine08688697"}}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsconstructEventsRuleRoleDefaultPolicyC40CE54A","roles":[{"Ref":"testeventbridgestepfunctionsconstructEventsRuleRole18E9101A"}]}}}}}}},"EventsRule":{"id":"EventsRule","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","schedule":"*"},{"addEventPattern":["*"]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-no-argument/test-eventbridge-stepfunctions-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"scheduleExpression":"rate(5 minutes)","state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"testeventbridgestepfunctionsconstructStateMachine08688697"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsconstructEventsRuleRole18E9101A","Arn"]}}]}}}}}}},"Integ":{"id":"Integ","path":"evtstp-eventbridge-stepfunctions-no-argument/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-no-argument/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-no-argument/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstp-eventbridge-stepfunctions-with-lambda.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstp-eventbridge-stepfunctions-with-lambda.assets.json index b14b9d0b5..6bfbaa3d7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstp-eventbridge-stepfunctions-with-lambda.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstp-eventbridge-stepfunctions-with-lambda.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { + "displayName": "LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "693d54ae3b4095b5744d912a999894b400348d7de939ffc3b5f8ed04c2ef98fd": { + "713ec371b037246018c0de2449087ac27ff3713dbc4267aec163532dd2033062": { + "displayName": "evtstp-eventbridge-stepfunctions-with-lambda Template", "source": { "path": "evtstp-eventbridge-stepfunctions-with-lambda.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-fa14be00": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "693d54ae3b4095b5744d912a999894b400348d7de939ffc3b5f8ed04c2ef98fd.json", + "objectKey": "713ec371b037246018c0de2449087ac27ff3713dbc4267aec163532dd2033062.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstp-eventbridge-stepfunctions-with-lambda.template.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstp-eventbridge-stepfunctions-with-lambda.template.json index 3af216ad3..81ad2f528 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstp-eventbridge-stepfunctions-with-lambda.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstp-eventbridge-stepfunctions-with-lambda.template.json @@ -69,7 +69,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -83,7 +83,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstpeventbridgestepfunctionswithlambdaIntegDefaultTestDeployAssert852E184F.assets.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstpeventbridgestepfunctionswithlambdaIntegDefaultTestDeployAssert852E184F.assets.json index 3440f85cc..c6b2e3ca1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstpeventbridgestepfunctionswithlambdaIntegDefaultTestDeployAssert852E184F.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/evtstpeventbridgestepfunctionswithlambdaIntegDefaultTestDeployAssert852E184F.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "evtstpeventbridgestepfunctionswithlambdaIntegDefaultTestDeployAssert852E184F Template", "source": { "path": "evtstpeventbridgestepfunctionswithlambdaIntegDefaultTestDeployAssert852E184F.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/integ.json index 4bf1b2209..22f223f47 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest/DeployAssert", "assertionStackName": "evtstpeventbridgestepfunctionswithlambdaIntegDefaultTestDeployAssert852E184F" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/manifest.json index 7d978f14f..2c01dbd46 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "evtstpeventbridgestepfunctionswithlambdaIntegDefaultTestDeployAssert852E184F.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/693d54ae3b4095b5744d912a999894b400348d7de939ffc3b5f8ed04c2ef98fd.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/713ec371b037246018c0de2449087ac27ff3713dbc4267aec163532dd2033062.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -345,7 +345,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -365,7 +366,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -385,7 +387,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -526,15 +529,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "LambdaFunctionServiceRoleDefaultPolicy126C8897": [ - { - "type": "aws:cdk:logicalId", - "data": "LambdaFunctionServiceRoleDefaultPolicy126C8897", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "evtstp-eventbridge-stepfunctions-with-lambda" @@ -544,7 +538,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/tree.json index 3d11c3e4b..2959bf35f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.evtstp-eventbridge-stepfunctions-with-lambda.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"evtstp-eventbridge-stepfunctions-with-lambda":{"id":"evtstp-eventbridge-stepfunctions-with-lambda","path":"evtstp-eventbridge-stepfunctions-with-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","code":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"LambdaTask":{"id":"LambdaTask","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaTask","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.186.0"}},"StartState":{"id":"StartState","path":"evtstp-eventbridge-stepfunctions-with-lambda/StartState","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.Pass","version":"2.186.0"}},"test-eventbridge-stepfunctions-and-lambda-construct":{"id":"test-eventbridge-stepfunctions-and-lambda-construct","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct","children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachineLogGroup","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachineLogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/evtstp-eventbridge-stepfunctions-with-lambdatest-eventbridge-stepfunctions-and-lambda-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]}},"StateMachine":{"id":"StateMachine","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine","children":{"Role":{"id":"Role","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role","children":{"ImportRole":{"id":"ImportRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsandlambdaconstructStateMachineRoleDefaultPolicy2D46F04B","roles":[{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineRoleD7589F39"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"StartState\",\"States\":{\"StartState\":{\"Type\":\"Pass\",\"Next\":\"LambdaTask\"},\"LambdaTask\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"\",\"Payload.$\":\"$\"}}},\"TimeoutSeconds\":300}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testeventbridgestepfunctionsandlambdaconstructStateMachineLogGroup7C2D036A","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsandlambdaconstructStateMachineRoleD7589F39","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.186.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*","timeout":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionFailedAlarm","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionFailedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionThrottledAlarm","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionThrottledAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionAbortedAlarm","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionAbortedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"EventsRuleRole":{"id":"EventsRuleRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole","children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"}}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsandlambdaconstructEventsRuleRoleDefaultPolicyADADC1CD","roles":[{"Ref":"testeventbridgestepfunctionsandlambdaconstructEventsRuleRole932919A5"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"EventsRule":{"id":"EventsRule","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRule","children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRule/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"scheduleExpression":"rate(5 minutes)","state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsandlambdaconstructEventsRuleRole932919A5","Arn"]}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.186.0","metadata":[{"targets":"*","eventBus":"*","schedule":"*"},{"addEventPattern":["*"]},{"addTarget":[{}]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.80.0"}},"Integ":{"id":"Integ","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-with-lambda/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-with-lambda/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"evtstp-eventbridge-stepfunctions-with-lambda":{"id":"evtstp-eventbridge-stepfunctions-with-lambda","path":"evtstp-eventbridge-stepfunctions-with-lambda","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","code":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaTask":{"id":"LambdaTask","path":"evtstp-eventbridge-stepfunctions-with-lambda/LambdaTask","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"StartState":{"id":"StartState","path":"evtstp-eventbridge-stepfunctions-with-lambda/StartState","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.Pass","version":"2.223.0"}},"test-eventbridge-stepfunctions-and-lambda-construct":{"id":"test-eventbridge-stepfunctions-and-lambda-construct","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/evtstp-eventbridge-stepfunctions-with-lambdatest-eventbridge-stepfunctions-and-lambda-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*","timeout":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsandlambdaconstructStateMachineRoleDefaultPolicy2D46F04B","roles":[{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineRoleD7589F39"}]}}}}}}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"StartState\",\"States\":{\"StartState\":{\"Type\":\"Pass\",\"Next\":\"LambdaTask\"},\"LambdaTask\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"\",\"Payload.$\":\"$\"}}},\"TimeoutSeconds\":300}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testeventbridgestepfunctionsandlambdaconstructStateMachineLogGroup7C2D036A","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsandlambdaconstructStateMachineRoleD7589F39","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"}}],"Version":"2012-10-17"},"policyName":"testeventbridgestepfunctionsandlambdaconstructEventsRuleRoleDefaultPolicyADADC1CD","roles":[{"Ref":"testeventbridgestepfunctionsandlambdaconstructEventsRuleRole932919A5"}]}}}}}}},"EventsRule":{"id":"EventsRule","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","schedule":"*"},{"addEventPattern":["*"]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"evtstp-eventbridge-stepfunctions-with-lambda/test-eventbridge-stepfunctions-and-lambda-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"scheduleExpression":"rate(5 minutes)","state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"testeventbridgestepfunctionsandlambdaconstructStateMachineACD2232F"},"roleArn":{"Fn::GetAtt":["testeventbridgestepfunctionsandlambdaconstructEventsRuleRole932919A5","Arn"]}}]}}}}}}},"Integ":{"id":"Integ","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-with-lambda/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"evtstp-eventbridge-stepfunctions-with-lambda/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"evtstp-eventbridge-stepfunctions-with-lambda/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/integ.config.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/integ.config.json index 93d8ca4b6..9b6c60730 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/integ.config.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/integ.config.json @@ -1,6 +1,6 @@ { "parallelRegions": [ - "us-east-1" + "us-east-2" ], "disable-update-workflow": true, "update-on-failed": false diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/faropn-existing-resources.assets.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/faropn-existing-resources.assets.json index d97c5a059..f3c598050 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/faropn-existing-resources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/faropn-existing-resources.assets.json @@ -16,16 +16,16 @@ } } }, - "dddb8b08d1a7de25fb579e4537cfe2bc50853fbbf7eb3e9eb548d8610d27c8e2": { + "683c97dc2cfa26db40e07728a92d3a60ce01a02dbe955af968038c07b9b2a836": { "displayName": "faropn-existing-resources Template", "source": { "path": "faropn-existing-resources.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-942ccb88": { + "current_account-us-east-1-3189c1c8": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "dddb8b08d1a7de25fb579e4537cfe2bc50853fbbf7eb3e9eb548d8610d27c8e2.json", + "objectKey": "683c97dc2cfa26db40e07728a92d3a60ce01a02dbe955af968038c07b9b2a836.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/faropn-existing-resources.template.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/faropn-existing-resources.template.json index a5f9b3d2a..c47c02ece 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/faropn-existing-resources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/faropn-existing-resources.template.json @@ -1554,6 +1554,9 @@ ] } }, + "DependsOn": [ + "testconstructCognitoDashboardConfigureRoleFA66EB70" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/manifest.json index 22d9fcf96..8113f5f48 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/dddb8b08d1a7de25fb579e4537cfe2bc50853fbbf7eb3e9eb548d8610d27c8e2.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/683c97dc2cfa26db40e07728a92d3a60ce01a02dbe955af968038c07b9b2a836.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/tree.json index f5f8a42ec..038b358ce 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-existing-resources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"faropn-existing-resources":{"id":"faropn-existing-resources","path":"faropn-existing-resources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"faropn-existing-resources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"faropn-existing-resources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-existing-resources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-existing-resources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-existing-resources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-existing-resources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-existing-resources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"faropn-existing-resources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"faropn-existing-resources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"faropn-existing-resources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-existing-resources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-existing-resources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-existing-resources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-existing-resources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-existing-resources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"faropn-existing-resources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"faropn-existing-resources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"faropn-existing-resources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-existing-resources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"faropn-existing-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-existing-resources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-existing-resources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-existing-resources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-existing-resources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"faropn-existing-resources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-existing-resources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"faropn-existing-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-existing-resources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-existing-resources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-existing-resources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-existing-resources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"faropn-existing-resources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"faropn-existing-resources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"faropn-existing-resources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"faropn-existing-resources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"faropn-existing-resources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"faropn-existing-resources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"faropn-existing-resources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"ECR_API":{"id":"ECR_API","path":"faropn-existing-resources/Vpc/ECR_API","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/ECR_API/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["faropnexistingresourcesECRAPIsecuritygroup9E21D9FB","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.api","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ECR_DKR":{"id":"ECR_DKR","path":"faropn-existing-resources/Vpc/ECR_DKR","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/ECR_DKR/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["faropnexistingresourcesECRDKRsecuritygroupCF68611A","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.dkr","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"faropn-existing-resources/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"faropn-existing-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"faropn-existing-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"faropn-existing-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"faropn-existing-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"faropn-existing-resources-ECR_API-security-group":{"id":"faropn-existing-resources-ECR_API-security-group","path":"faropn-existing-resources/faropn-existing-resources-ECR_API-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/faropn-existing-resources-ECR_API-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"faropn-existing-resources/faropn-existing-resources-ECR_API-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"faropn-existing-resources-ECR_DKR-security-group":{"id":"faropn-existing-resources-ECR_DKR-security-group","path":"faropn-existing-resources/faropn-existing-resources-ECR_DKR-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/faropn-existing-resources-ECR_DKR-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"faropn-existing-resources/faropn-existing-resources-ECR_DKR-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cluster":{"id":"test-cluster","path":"faropn-existing-resources/test-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.Cluster","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Cluster","aws:cdk:cloudformation:props":{}}}}},"test-taskdef":{"id":"test-taskdef","path":"faropn-existing-resources/test-taskdef","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateTaskDefinition","version":"2.223.0","metadata":["*","*","*"]},"children":{"TaskRole":{"id":"TaskRole","path":"faropn-existing-resources/test-taskdef/TaskRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportTaskRole":{"id":"ImportTaskRole","path":"faropn-existing-resources/test-taskdef/TaskRole/ImportTaskRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-existing-resources/test-taskdef/TaskRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"Resource":{"id":"Resource","path":"faropn-existing-resources/test-taskdef/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnTaskDefinition","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::TaskDefinition","aws:cdk:cloudformation:props":{"containerDefinitions":[{"essential":true,"image":"nginx","memoryReservation":512,"name":"test-container","portMappings":[{"containerPort":8080,"protocol":"tcp"}],"environment":[{"name":"CUSTOM_NAME","value":{"Fn::GetAtt":["testconstructOpenSearchDomainD2A5B104","DomainEndpoint"]}}]}],"cpu":"256","family":"faropnexistingresourcestesttaskdefE1B083DB","memory":"512","networkMode":"awsvpc","requiresCompatibilities":["FARGATE"],"taskRoleArn":{"Fn::GetAtt":["testtaskdefTaskRoleB2DEF113","Arn"]}}}},"test-container":{"id":"test-container","path":"faropn-existing-resources/test-taskdef/test-container","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.ContainerDefinition","version":"2.223.0"}}}},"test-sg":{"id":"test-sg","path":"faropn-existing-resources/test-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"allowAllOutbound":true,"disableInlineRules":false,"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Construct created security group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-service":{"id":"test-service","path":"faropn-existing-resources/test-service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateService","version":"2.223.0","metadata":["*"]},"children":{"Service":{"id":"Service","path":"faropn-existing-resources/test-service/Service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnService","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Service","aws:cdk:cloudformation:props":{"cluster":{"Ref":"testclusterDF8B0D19"},"deploymentConfiguration":{"maximumPercent":150,"minimumHealthyPercent":75},"desiredCount":2,"enableEcsManagedTags":false,"launchType":"FARGATE","networkConfiguration":{"awsvpcConfiguration":{"assignPublicIp":"DISABLED","subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroups":[{"Fn::GetAtt":["testsg872EB48A","GroupId"]}]}},"platformVersion":"LATEST","taskDefinition":{"Ref":"testtaskdefF924AD58"}}}}}},"test-construct":{"id":"test-construct","path":"faropn-existing-resources/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-fargate-opensearch.FargateToOpenSearch","version":"2.94.0"},"children":{"CognitoUserPool":{"id":"CognitoUserPool","path":"faropn-existing-resources/test-construct/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"faropn-existing-resources/test-construct/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"faropn-existing-resources/test-construct/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testconstructCognitoUserPoolClient36ACF012"},"providerName":{"Fn::GetAtt":["testconstructCognitoUserPoolA4991355","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"faropn-existing-resources/test-construct/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"faropn-existing-resources/test-construct/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"faropn-existing-resources/test-construct/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testconstructCognitoIdentityPool51EFD08D"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"faropn-existing-resources/test-construct/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testconstructCognitoIdentityPool51EFD08D"},"roles":{"authenticated":{"Fn::GetAtt":["testconstructCognitoAuthorizedRole7BA83790","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testconstructCognitoUserPoolA4991355","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testconstructCognitoIdentityPool51EFD08D"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testconstructCognitoDashboardConfigureRoleFA66EB70","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructCognitoDashboardConfigureRolePolicy3EC6F1C4","roles":[{"Ref":"testconstructCognitoDashboardConfigureRoleFA66EB70"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"faropn-existing-resources/test-construct/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["testconstructCognitoAuthorizedRole7BA83790","Arn"]}},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testconstructCognitoIdentityPool51EFD08D"},"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"},"roleArn":{"Fn::GetAtt":["testconstructCognitoDashboardConfigureRoleFA66EB70","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testsg872EB48A","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"faropn-existing-resources/test-construct/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"faropn-existing-resources/test-construct/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"faropn-existing-resources/test-construct/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"faropn-existing-resources/test-construct/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"faropn-existing-resources/test-construct/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"faropn-existing-resources/test-construct/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"faropn-existing-resources/test-construct/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"faropn-existing-resources/test-construct/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"faropn-existing-resources/test-construct/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"faropn-existing-resources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"faropn-existing-resources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"faropn-existing-resources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"faropn-existing-resources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"faropn-existing-resources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"faropn-existing-resources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"faropn-existing-resources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"faropn-existing-resources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"faropn-existing-resources":{"id":"faropn-existing-resources","path":"faropn-existing-resources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"faropn-existing-resources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"faropn-existing-resources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-existing-resources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-existing-resources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-existing-resources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-existing-resources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-existing-resources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"faropn-existing-resources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"faropn-existing-resources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"faropn-existing-resources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-existing-resources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-existing-resources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-existing-resources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-existing-resources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-existing-resources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"faropn-existing-resources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"faropn-existing-resources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"faropn-existing-resources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-existing-resources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"faropn-existing-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-existing-resources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-existing-resources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-existing-resources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-existing-resources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"faropn-existing-resources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-existing-resources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"faropn-existing-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-existing-resources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-existing-resources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-existing-resources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-existing-resources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"faropn-existing-resources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"faropn-existing-resources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"faropn-existing-resources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"faropn-existing-resources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"faropn-existing-resources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"faropn-existing-resources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"faropn-existing-resources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"faropn-existing-resources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"ECR_API":{"id":"ECR_API","path":"faropn-existing-resources/Vpc/ECR_API","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/ECR_API/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["faropnexistingresourcesECRAPIsecuritygroup9E21D9FB","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.api","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ECR_DKR":{"id":"ECR_DKR","path":"faropn-existing-resources/Vpc/ECR_DKR","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/ECR_DKR/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["faropnexistingresourcesECRDKRsecuritygroupCF68611A","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.dkr","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"faropn-existing-resources/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-existing-resources/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"faropn-existing-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"faropn-existing-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"faropn-existing-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"faropn-existing-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"faropn-existing-resources-ECR_API-security-group":{"id":"faropn-existing-resources-ECR_API-security-group","path":"faropn-existing-resources/faropn-existing-resources-ECR_API-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/faropn-existing-resources-ECR_API-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"faropn-existing-resources/faropn-existing-resources-ECR_API-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"faropn-existing-resources-ECR_DKR-security-group":{"id":"faropn-existing-resources-ECR_DKR-security-group","path":"faropn-existing-resources/faropn-existing-resources-ECR_DKR-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/faropn-existing-resources-ECR_DKR-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"faropn-existing-resources/faropn-existing-resources-ECR_DKR-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cluster":{"id":"test-cluster","path":"faropn-existing-resources/test-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.Cluster","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Cluster","aws:cdk:cloudformation:props":{}}}}},"test-taskdef":{"id":"test-taskdef","path":"faropn-existing-resources/test-taskdef","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateTaskDefinition","version":"2.223.0","metadata":["*","*","*"]},"children":{"TaskRole":{"id":"TaskRole","path":"faropn-existing-resources/test-taskdef/TaskRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportTaskRole":{"id":"ImportTaskRole","path":"faropn-existing-resources/test-taskdef/TaskRole/ImportTaskRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-existing-resources/test-taskdef/TaskRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"Resource":{"id":"Resource","path":"faropn-existing-resources/test-taskdef/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnTaskDefinition","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::TaskDefinition","aws:cdk:cloudformation:props":{"containerDefinitions":[{"essential":true,"image":"nginx","memoryReservation":512,"name":"test-container","portMappings":[{"containerPort":8080,"protocol":"tcp"}],"environment":[{"name":"CUSTOM_NAME","value":{"Fn::GetAtt":["testconstructOpenSearchDomainD2A5B104","DomainEndpoint"]}}]}],"cpu":"256","family":"faropnexistingresourcestesttaskdefE1B083DB","memory":"512","networkMode":"awsvpc","requiresCompatibilities":["FARGATE"],"taskRoleArn":{"Fn::GetAtt":["testtaskdefTaskRoleB2DEF113","Arn"]}}}},"test-container":{"id":"test-container","path":"faropn-existing-resources/test-taskdef/test-container","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.ContainerDefinition","version":"2.223.0"}}}},"test-sg":{"id":"test-sg","path":"faropn-existing-resources/test-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"allowAllOutbound":true,"disableInlineRules":false,"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Construct created security group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-service":{"id":"test-service","path":"faropn-existing-resources/test-service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateService","version":"2.223.0","metadata":["*"]},"children":{"Service":{"id":"Service","path":"faropn-existing-resources/test-service/Service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnService","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Service","aws:cdk:cloudformation:props":{"cluster":{"Ref":"testclusterDF8B0D19"},"deploymentConfiguration":{"maximumPercent":150,"minimumHealthyPercent":75},"desiredCount":2,"enableEcsManagedTags":false,"launchType":"FARGATE","networkConfiguration":{"awsvpcConfiguration":{"assignPublicIp":"DISABLED","subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroups":[{"Fn::GetAtt":["testsg872EB48A","GroupId"]}]}},"platformVersion":"LATEST","taskDefinition":{"Ref":"testtaskdefF924AD58"}}}}}},"test-construct":{"id":"test-construct","path":"faropn-existing-resources/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-fargate-opensearch.FargateToOpenSearch","version":"2.95.1"},"children":{"CognitoUserPool":{"id":"CognitoUserPool","path":"faropn-existing-resources/test-construct/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"faropn-existing-resources/test-construct/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"faropn-existing-resources/test-construct/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testconstructCognitoUserPoolClient36ACF012"},"providerName":{"Fn::GetAtt":["testconstructCognitoUserPoolA4991355","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"faropn-existing-resources/test-construct/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"faropn-existing-resources/test-construct/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"faropn-existing-resources/test-construct/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testconstructCognitoIdentityPool51EFD08D"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"faropn-existing-resources/test-construct/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testconstructCognitoIdentityPool51EFD08D"},"roles":{"authenticated":{"Fn::GetAtt":["testconstructCognitoAuthorizedRole7BA83790","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testconstructCognitoUserPoolA4991355","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testconstructCognitoIdentityPool51EFD08D"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testconstructCognitoDashboardConfigureRoleFA66EB70","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructCognitoDashboardConfigureRolePolicy3EC6F1C4","roles":[{"Ref":"testconstructCognitoDashboardConfigureRoleFA66EB70"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"faropn-existing-resources/test-construct/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["testconstructCognitoAuthorizedRole7BA83790","Arn"]}},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testconstructCognitoIdentityPool51EFD08D"},"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"},"roleArn":{"Fn::GetAtt":["testconstructCognitoDashboardConfigureRoleFA66EB70","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testsg872EB48A","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"faropn-existing-resources/test-construct/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"faropn-existing-resources/test-construct/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"faropn-existing-resources/test-construct/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"faropn-existing-resources/test-construct/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"faropn-existing-resources/test-construct/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"faropn-existing-resources/test-construct/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"faropn-existing-resources/test-construct/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"faropn-existing-resources/test-construct/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"faropn-existing-resources/test-construct/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-existing-resources/test-construct/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"faropn-existing-resources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"faropn-existing-resources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"faropn-existing-resources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"faropn-existing-resources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"faropn-existing-resources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"faropn-existing-resources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"faropn-existing-resources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"faropn-existing-resources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/faropn-new-resources.assets.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/faropn-new-resources.assets.json index df66770f9..7e3e09c1a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/faropn-new-resources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/faropn-new-resources.assets.json @@ -16,16 +16,16 @@ } } }, - "6ca36eebb9cb02584c2a50f1ea6fce49d781b98ea912c7754c4ec89fe1a7ed12": { + "bc96b77b352f6fb63e76e38e7f12f4fffc11694b128cb0ab8890971fbb3fb441": { "displayName": "faropn-new-resources Template", "source": { "path": "faropn-new-resources.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-e3839ad6": { + "current_account-us-east-1-ef3e4d71": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "6ca36eebb9cb02584c2a50f1ea6fce49d781b98ea912c7754c4ec89fe1a7ed12.json", + "objectKey": "bc96b77b352f6fb63e76e38e7f12f4fffc11694b128cb0ab8890971fbb3fb441.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/faropn-new-resources.template.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/faropn-new-resources.template.json index 1157a87f6..ba6f96637 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/faropn-new-resources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/faropn-new-resources.template.json @@ -550,6 +550,9 @@ ] } }, + "DependsOn": [ + "testconstructCognitoDashboardConfigureRoleFA66EB70" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/manifest.json index c933cf9a6..e553339d0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/6ca36eebb9cb02584c2a50f1ea6fce49d781b98ea912c7754c4ec89fe1a7ed12.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/bc96b77b352f6fb63e76e38e7f12f4fffc11694b128cb0ab8890971fbb3fb441.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/tree.json index 7ae9b500f..09c4a45a5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.faropn-new-resources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"faropn-new-resources":{"id":"faropn-new-resources","path":"faropn-new-resources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-construct":{"id":"test-construct","path":"faropn-new-resources/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-fargate-opensearch.FargateToOpenSearch","version":"2.94.0"},"children":{"CognitoUserPool":{"id":"CognitoUserPool","path":"faropn-new-resources/test-construct/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"faropn-new-resources/test-construct/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"faropn-new-resources/test-construct/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testconstructCognitoUserPoolClient36ACF012"},"providerName":{"Fn::GetAtt":["testconstructCognitoUserPoolA4991355","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"faropn-new-resources/test-construct/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"faropn-new-resources/test-construct/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"faropn-new-resources/test-construct/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testconstructCognitoIdentityPool51EFD08D"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"faropn-new-resources/test-construct/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testconstructCognitoIdentityPool51EFD08D"},"roles":{"authenticated":{"Fn::GetAtt":["testconstructCognitoAuthorizedRole7BA83790","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testconstructCognitoUserPoolA4991355","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testconstructCognitoIdentityPool51EFD08D"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testconstructCognitoDashboardConfigureRoleFA66EB70","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructCognitoDashboardConfigureRolePolicy3EC6F1C4","roles":[{"Ref":"testconstructCognitoDashboardConfigureRoleFA66EB70"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"faropn-new-resources/test-construct/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["testconstructCognitoAuthorizedRole7BA83790","Arn"]}},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testconstructCognitoIdentityPool51EFD08D"},"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"},"roleArn":{"Fn::GetAtt":["testconstructCognitoDashboardConfigureRoleFA66EB70","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testconstructsgA602AA29","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"faropn-new-resources/test-construct/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"faropn-new-resources/test-construct/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"faropn-new-resources/test-construct/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"faropn-new-resources/test-construct/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"faropn-new-resources/test-construct/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"faropn-new-resources/test-construct/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"faropn-new-resources/test-construct/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"faropn-new-resources/test-construct/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"faropn-new-resources/test-construct/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"faropn-new-resources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"faropn-new-resources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-new-resources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-new-resources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-new-resources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-new-resources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-new-resources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"faropn-new-resources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"faropn-new-resources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"faropn-new-resources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-new-resources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-new-resources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-new-resources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-new-resources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-new-resources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"faropn-new-resources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"faropn-new-resources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"faropn-new-resources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-new-resources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"faropn-new-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-new-resources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-new-resources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-new-resources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-new-resources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"faropn-new-resources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-new-resources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"faropn-new-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-new-resources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-new-resources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-new-resources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-new-resources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"faropn-new-resources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"faropn-new-resources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"faropn-new-resources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"faropn-new-resources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"faropn-new-resources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"faropn-new-resources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"faropn-new-resources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"faropn-new-resources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"faropn-new-resources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"faropn-new-resources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"faropn-new-resources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"ECR_API":{"id":"ECR_API","path":"faropn-new-resources/Vpc/ECR_API","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/ECR_API/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["faropnnewresourcesECRAPIsecuritygroup518CB3F4","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.api","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ECR_DKR":{"id":"ECR_DKR","path":"faropn-new-resources/Vpc/ECR_DKR","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/ECR_DKR/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["faropnnewresourcesECRDKRsecuritygroup12106D60","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.dkr","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"faropn-new-resources/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"faropn-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"faropn-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"faropn-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"faropn-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"faropn-new-resources-ECR_API-security-group":{"id":"faropn-new-resources-ECR_API-security-group","path":"faropn-new-resources/faropn-new-resources-ECR_API-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/faropn-new-resources-ECR_API-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"faropn-new-resources/faropn-new-resources-ECR_API-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"faropn-new-resources-ECR_DKR-security-group":{"id":"faropn-new-resources-ECR_DKR-security-group","path":"faropn-new-resources/faropn-new-resources-ECR_DKR-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/faropn-new-resources-ECR_DKR-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"faropn-new-resources/faropn-new-resources-ECR_DKR-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-construct-cluster":{"id":"test-construct-cluster","path":"faropn-new-resources/test-construct-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.Cluster","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct-cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Cluster","aws:cdk:cloudformation:props":{}}}}},"test-construct-taskdef":{"id":"test-construct-taskdef","path":"faropn-new-resources/test-construct-taskdef","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateTaskDefinition","version":"2.223.0","metadata":["*","*","*"]},"children":{"TaskRole":{"id":"TaskRole","path":"faropn-new-resources/test-construct-taskdef/TaskRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportTaskRole":{"id":"ImportTaskRole","path":"faropn-new-resources/test-construct-taskdef/TaskRole/ImportTaskRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct-taskdef/TaskRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct-taskdef/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnTaskDefinition","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::TaskDefinition","aws:cdk:cloudformation:props":{"containerDefinitions":[{"essential":true,"image":"nginx","memoryReservation":512,"name":"test-construct-container","portMappings":[{"containerPort":8080,"protocol":"tcp"}],"environment":[{"name":"DOMAIN_ENDPOINT","value":{"Fn::GetAtt":["testconstructOpenSearchDomainD2A5B104","DomainEndpoint"]}}]}],"cpu":"256","family":"faropnnewresourcestestconstructtaskdefA180857F","memory":"512","networkMode":"awsvpc","requiresCompatibilities":["FARGATE"],"taskRoleArn":{"Fn::GetAtt":["testconstructtaskdefTaskRoleC60414C4","Arn"]}}}},"test-construct-container":{"id":"test-construct-container","path":"faropn-new-resources/test-construct-taskdef/test-construct-container","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.ContainerDefinition","version":"2.223.0"}}}},"test-construct-sg":{"id":"test-construct-sg","path":"faropn-new-resources/test-construct-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"allowAllOutbound":true,"disableInlineRules":false,"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Construct created security group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-construct-service":{"id":"test-construct-service","path":"faropn-new-resources/test-construct-service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateService","version":"2.223.0","metadata":["*"]},"children":{"Service":{"id":"Service","path":"faropn-new-resources/test-construct-service/Service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnService","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Service","aws:cdk:cloudformation:props":{"cluster":{"Ref":"testconstructcluster7B6231C5"},"deploymentConfiguration":{"maximumPercent":150,"minimumHealthyPercent":75},"desiredCount":2,"enableEcsManagedTags":false,"launchType":"FARGATE","networkConfiguration":{"awsvpcConfiguration":{"assignPublicIp":"DISABLED","subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroups":[{"Fn::GetAtt":["testconstructsgA602AA29","GroupId"]}]}},"platformVersion":"LATEST","taskDefinition":{"Ref":"testconstructtaskdef8BD1F9E4"}}}}}},"Integ":{"id":"Integ","path":"faropn-new-resources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"faropn-new-resources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"faropn-new-resources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"faropn-new-resources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"faropn-new-resources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"faropn-new-resources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"faropn-new-resources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"faropn-new-resources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"faropn-new-resources":{"id":"faropn-new-resources","path":"faropn-new-resources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-construct":{"id":"test-construct","path":"faropn-new-resources/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-fargate-opensearch.FargateToOpenSearch","version":"2.95.1"},"children":{"CognitoUserPool":{"id":"CognitoUserPool","path":"faropn-new-resources/test-construct/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"faropn-new-resources/test-construct/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"faropn-new-resources/test-construct/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testconstructCognitoUserPoolClient36ACF012"},"providerName":{"Fn::GetAtt":["testconstructCognitoUserPoolA4991355","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"faropn-new-resources/test-construct/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"faropn-new-resources/test-construct/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"faropn-new-resources/test-construct/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testconstructCognitoIdentityPool51EFD08D"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"faropn-new-resources/test-construct/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testconstructCognitoIdentityPool51EFD08D"},"roles":{"authenticated":{"Fn::GetAtt":["testconstructCognitoAuthorizedRole7BA83790","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testconstructCognitoUserPoolA4991355","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testconstructCognitoIdentityPool51EFD08D"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testconstructCognitoDashboardConfigureRoleFA66EB70","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructCognitoDashboardConfigureRolePolicy3EC6F1C4","roles":[{"Ref":"testconstructCognitoDashboardConfigureRoleFA66EB70"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"faropn-new-resources/test-construct/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["testconstructCognitoAuthorizedRole7BA83790","Arn"]}},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testconstructCognitoIdentityPool51EFD08D"},"userPoolId":{"Ref":"testconstructCognitoUserPoolA4991355"},"roleArn":{"Fn::GetAtt":["testconstructCognitoDashboardConfigureRoleFA66EB70","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testconstructsgA602AA29","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"faropn-new-resources/test-construct/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"faropn-new-resources/test-construct/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"faropn-new-resources/test-construct/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"faropn-new-resources/test-construct/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"faropn-new-resources/test-construct/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"faropn-new-resources/test-construct/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"faropn-new-resources/test-construct/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"faropn-new-resources/test-construct/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"faropn-new-resources/test-construct/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"faropn-new-resources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"faropn-new-resources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-new-resources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-new-resources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-new-resources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-new-resources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-new-resources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"faropn-new-resources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"faropn-new-resources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"faropn-new-resources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-new-resources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-new-resources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-new-resources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-new-resources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-new-resources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"faropn-new-resources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"faropn-new-resources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"faropn-new-resources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-new-resources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"faropn-new-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-new-resources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-new-resources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-new-resources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-new-resources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"faropn-new-resources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"faropn-new-resources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"faropn-new-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"faropn-new-resources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"faropn-new-resources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"faropn-new-resources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"faropn-new-resources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"faropn-new-resources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"faropn-new-resources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"faropn-new-resources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"faropn-new-resources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"faropn-new-resources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"faropn-new-resources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"faropn-new-resources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"faropn-new-resources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"faropn-new-resources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"faropn-new-resources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"faropn-new-resources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"faropn-new-resources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"ECR_API":{"id":"ECR_API","path":"faropn-new-resources/Vpc/ECR_API","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/ECR_API/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["faropnnewresourcesECRAPIsecuritygroup518CB3F4","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.api","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ECR_DKR":{"id":"ECR_DKR","path":"faropn-new-resources/Vpc/ECR_DKR","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/ECR_DKR/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["faropnnewresourcesECRDKRsecuritygroup12106D60","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.dkr","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"faropn-new-resources/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"faropn-new-resources/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"faropn-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"faropn-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"faropn-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"faropn-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"faropn-new-resources-ECR_API-security-group":{"id":"faropn-new-resources-ECR_API-security-group","path":"faropn-new-resources/faropn-new-resources-ECR_API-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/faropn-new-resources-ECR_API-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"faropn-new-resources/faropn-new-resources-ECR_API-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"faropn-new-resources-ECR_DKR-security-group":{"id":"faropn-new-resources-ECR_DKR-security-group","path":"faropn-new-resources/faropn-new-resources-ECR_DKR-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/faropn-new-resources-ECR_DKR-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"faropn-new-resources/faropn-new-resources-ECR_DKR-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-construct-cluster":{"id":"test-construct-cluster","path":"faropn-new-resources/test-construct-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.Cluster","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct-cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Cluster","aws:cdk:cloudformation:props":{}}}}},"test-construct-taskdef":{"id":"test-construct-taskdef","path":"faropn-new-resources/test-construct-taskdef","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateTaskDefinition","version":"2.223.0","metadata":["*","*","*"]},"children":{"TaskRole":{"id":"TaskRole","path":"faropn-new-resources/test-construct-taskdef/TaskRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportTaskRole":{"id":"ImportTaskRole","path":"faropn-new-resources/test-construct-taskdef/TaskRole/ImportTaskRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct-taskdef/TaskRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct-taskdef/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnTaskDefinition","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::TaskDefinition","aws:cdk:cloudformation:props":{"containerDefinitions":[{"essential":true,"image":"nginx","memoryReservation":512,"name":"test-construct-container","portMappings":[{"containerPort":8080,"protocol":"tcp"}],"environment":[{"name":"DOMAIN_ENDPOINT","value":{"Fn::GetAtt":["testconstructOpenSearchDomainD2A5B104","DomainEndpoint"]}}]}],"cpu":"256","family":"faropnnewresourcestestconstructtaskdefA180857F","memory":"512","networkMode":"awsvpc","requiresCompatibilities":["FARGATE"],"taskRoleArn":{"Fn::GetAtt":["testconstructtaskdefTaskRoleC60414C4","Arn"]}}}},"test-construct-container":{"id":"test-construct-container","path":"faropn-new-resources/test-construct-taskdef/test-construct-container","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.ContainerDefinition","version":"2.223.0"}}}},"test-construct-sg":{"id":"test-construct-sg","path":"faropn-new-resources/test-construct-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"allowAllOutbound":true,"disableInlineRules":false,"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"faropn-new-resources/test-construct-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Construct created security group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-construct-service":{"id":"test-construct-service","path":"faropn-new-resources/test-construct-service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateService","version":"2.223.0","metadata":["*"]},"children":{"Service":{"id":"Service","path":"faropn-new-resources/test-construct-service/Service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnService","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Service","aws:cdk:cloudformation:props":{"cluster":{"Ref":"testconstructcluster7B6231C5"},"deploymentConfiguration":{"maximumPercent":150,"minimumHealthyPercent":75},"desiredCount":2,"enableEcsManagedTags":false,"launchType":"FARGATE","networkConfiguration":{"awsvpcConfiguration":{"assignPublicIp":"DISABLED","subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroups":[{"Fn::GetAtt":["testconstructsgA602AA29","GroupId"]}]}},"platformVersion":"LATEST","taskDefinition":{"Ref":"testconstructtaskdef8BD1F9E4"}}}}}},"Integ":{"id":"Integ","path":"faropn-new-resources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"faropn-new-resources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"faropn-new-resources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"faropn-new-resources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"faropn-new-resources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"faropn-new-resources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"faropn-new-resources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"faropn-new-resources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/farstp-new-resources.assets.json b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/farstp-new-resources.assets.json index 6ac6ef598..fe1761f69 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/farstp-new-resources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/farstp-new-resources.assets.json @@ -16,16 +16,16 @@ } } }, - "94cbe97b18d0050b26d59aa04e6cc4aec03292949a08486483c694379071eff1": { + "2b8129007b1397f66cfbc704c44d340b76c0b9176883926dfd9c829ba27b346c": { "displayName": "farstp-new-resources Template", "source": { "path": "farstp-new-resources.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-8ea40742": { + "current_account-us-east-1-955c5cb7": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "94cbe97b18d0050b26d59aa04e6cc4aec03292949a08486483c694379071eff1.json", + "objectKey": "2b8129007b1397f66cfbc704c44d340b76c0b9176883926dfd9c829ba27b346c.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/farstp-new-resources.template.json b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/farstp-new-resources.template.json index b303367af..d37d311ce 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/farstp-new-resources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/farstp-new-resources.template.json @@ -1115,7 +1115,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdafarstptestServiceRole3635EEF7" diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/manifest.json index d1f904404..5a61fa60a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/94cbe97b18d0050b26d59aa04e6cc4aec03292949a08486483c694379071eff1.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/2b8129007b1397f66cfbc704c44d340b76c0b9176883926dfd9c829ba27b346c.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/tree.json index 69bd7c199..4bef5bf5f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-new-resources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"farstp-new-resources":{"id":"farstp-new-resources","path":"farstp-new-resources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"farstp-new-resources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"farstp-new-resources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-new-resources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-new-resources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-new-resources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-new-resources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-new-resources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"farstp-new-resources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"farstp-new-resources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"farstp-new-resources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-new-resources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-new-resources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-new-resources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-new-resources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-new-resources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"farstp-new-resources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"farstp-new-resources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"farstp-new-resources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-new-resources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"farstp-new-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-new-resources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-new-resources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-new-resources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-new-resources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"farstp-new-resources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-new-resources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"farstp-new-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-new-resources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-new-resources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-new-resources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-new-resources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"farstp-new-resources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"farstp-new-resources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"farstp-new-resources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"farstp-new-resources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"farstp-new-resources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"farstp-new-resources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"farstp-new-resources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-new-resources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"farstp-new-resources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"farstp-new-resources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"farstp-new-resources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"ECR_API":{"id":"ECR_API","path":"farstp-new-resources/Vpc/ECR_API","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/ECR_API/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnewresourcesECRAPIsecuritygroup378EBA64","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.api","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ECR_DKR":{"id":"ECR_DKR","path":"farstp-new-resources/Vpc/ECR_DKR","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/ECR_DKR/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnewresourcesECRDKRsecuritygroup6175912D","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.dkr","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"farstp-new-resources/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"STEP_FUNCTIONS":{"id":"STEP_FUNCTIONS","path":"farstp-new-resources/Vpc/STEP_FUNCTIONS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/STEP_FUNCTIONS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnewresourcesSTEPFUNCTIONSsecuritygroup05F71CC8","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.states","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"farstp-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"farstp-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"farstp-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"farstp-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"farstp-new-resources-ECR_API-security-group":{"id":"farstp-new-resources-ECR_API-security-group","path":"farstp-new-resources/farstp-new-resources-ECR_API-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/farstp-new-resources-ECR_API-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-new-resources/farstp-new-resources-ECR_API-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"farstp-new-resources-ECR_DKR-security-group":{"id":"farstp-new-resources-ECR_DKR-security-group","path":"farstp-new-resources/farstp-new-resources-ECR_DKR-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/farstp-new-resources-ECR_DKR-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-new-resources/farstp-new-resources-ECR_DKR-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cluster":{"id":"test-cluster","path":"farstp-new-resources/test-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.Cluster","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Cluster","aws:cdk:cloudformation:props":{}}}}},"test-taskdef":{"id":"test-taskdef","path":"farstp-new-resources/test-taskdef","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateTaskDefinition","version":"2.223.0","metadata":["*","*","*"]},"children":{"TaskRole":{"id":"TaskRole","path":"farstp-new-resources/test-taskdef/TaskRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportTaskRole":{"id":"ImportTaskRole","path":"farstp-new-resources/test-taskdef/TaskRole/ImportTaskRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-new-resources/test-taskdef/TaskRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-new-resources/test-taskdef/TaskRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-taskdef/TaskRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testconstructStateMachine3333AAA9"}}],"Version":"2012-10-17"},"policyName":"testtaskdefTaskRoleDefaultPolicy5D591D1C","roles":[{"Ref":"testtaskdefTaskRoleB2DEF113"}]}}}}}}},"Resource":{"id":"Resource","path":"farstp-new-resources/test-taskdef/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnTaskDefinition","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::TaskDefinition","aws:cdk:cloudformation:props":{"containerDefinitions":[{"essential":true,"image":"nginx","memoryReservation":512,"name":"test-container","portMappings":[{"containerPort":8080,"protocol":"tcp"}],"environment":[{"name":"CUSTOM_NAME","value":{"Ref":"testconstructStateMachine3333AAA9"}}]}],"cpu":"256","family":"farstpnewresourcestesttaskdefAC23A4B2","memory":"512","networkMode":"awsvpc","requiresCompatibilities":["FARGATE"],"taskRoleArn":{"Fn::GetAtt":["testtaskdefTaskRoleB2DEF113","Arn"]}}}},"test-container":{"id":"test-container","path":"farstp-new-resources/test-taskdef/test-container","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.ContainerDefinition","version":"2.223.0"}}}},"test-sg":{"id":"test-sg","path":"farstp-new-resources/test-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"allowAllOutbound":true,"disableInlineRules":false,"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Construct created security group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-service":{"id":"test-service","path":"farstp-new-resources/test-service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateService","version":"2.223.0","metadata":["*"]},"children":{"Service":{"id":"Service","path":"farstp-new-resources/test-service/Service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnService","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Service","aws:cdk:cloudformation:props":{"cluster":{"Ref":"testclusterDF8B0D19"},"deploymentConfiguration":{"maximumPercent":150,"minimumHealthyPercent":75},"desiredCount":2,"enableEcsManagedTags":false,"launchType":"FARGATE","networkConfiguration":{"awsvpcConfiguration":{"assignPublicIp":"DISABLED","subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroups":[{"Fn::GetAtt":["testsg872EB48A","GroupId"]}]}},"platformVersion":"LATEST","taskDefinition":{"Ref":"testtaskdefF924AD58"}}}}}},"lambdafarstp-test":{"id":"lambdafarstp-test","path":"farstp-new-resources/lambdafarstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"farstp-new-resources/lambdafarstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"farstp-new-resources/lambdafarstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-new-resources/lambdafarstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"farstp-new-resources/lambdafarstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdafarstptestServiceRole3635EEF7","Arn"]},"runtime":"nodejs20.x"}}}}},"taskfarstp-test":{"id":"taskfarstp-test","path":"farstp-new-resources/taskfarstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-construct":{"id":"test-construct","path":"farstp-new-resources/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-fargate-stepfunctions.FargateToStepfunctions","version":"2.94.0"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"farstp-new-resources/test-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/farstp-new-resourcestest-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"farstp-new-resources/test-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"farstp-new-resources/test-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"farstp-new-resources/test-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-new-resources/test-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructStateMachineRoleDefaultPolicyF10A684E","roles":[{"Ref":"testconstructStateMachineRoleA396E5D3"}]}}}}}}},"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskfarstp-test\",\"States\":{\"taskfarstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testconstructStateMachineLogGroup2EB4F48B","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testconstructStateMachineRoleA396E5D3","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"farstp-new-resources/test-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testconstructStateMachine3333AAA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"farstp-new-resources/test-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testconstructStateMachine3333AAA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"farstp-new-resources/test-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testconstructStateMachine3333AAA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}}}},"farstp-new-resources-STEP_FUNCTIONS-security-group":{"id":"farstp-new-resources-STEP_FUNCTIONS-security-group","path":"farstp-new-resources/farstp-new-resources-STEP_FUNCTIONS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/farstp-new-resources-STEP_FUNCTIONS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-new-resources/farstp-new-resources-STEP_FUNCTIONS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"farstp-new-resources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"farstp-new-resources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"farstp-new-resources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"farstp-new-resources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"farstp-new-resources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"farstp-new-resources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"farstp-new-resources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"farstp-new-resources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"farstp-new-resources":{"id":"farstp-new-resources","path":"farstp-new-resources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"farstp-new-resources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"farstp-new-resources/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-new-resources/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-new-resources/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-new-resources/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-new-resources/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-new-resources/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"farstp-new-resources/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"farstp-new-resources/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"farstp-new-resources/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-new-resources/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-new-resources/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-new-resources/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-new-resources/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-new-resources/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"farstp-new-resources/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"farstp-new-resources/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"farstp-new-resources/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-new-resources/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"farstp-new-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-new-resources/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-new-resources/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-new-resources/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-new-resources/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"farstp-new-resources/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-new-resources/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"farstp-new-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-new-resources/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-new-resources/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-new-resources/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-new-resources/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"farstp-new-resources/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"farstp-new-resources/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"farstp-new-resources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"farstp-new-resources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"farstp-new-resources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"farstp-new-resources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"farstp-new-resources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-new-resources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"farstp-new-resources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"farstp-new-resources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"farstp-new-resources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"farstp-new-resources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"ECR_API":{"id":"ECR_API","path":"farstp-new-resources/Vpc/ECR_API","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/ECR_API/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnewresourcesECRAPIsecuritygroup378EBA64","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.api","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ECR_DKR":{"id":"ECR_DKR","path":"farstp-new-resources/Vpc/ECR_DKR","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/ECR_DKR/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnewresourcesECRDKRsecuritygroup6175912D","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.dkr","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"farstp-new-resources/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"STEP_FUNCTIONS":{"id":"STEP_FUNCTIONS","path":"farstp-new-resources/Vpc/STEP_FUNCTIONS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/Vpc/STEP_FUNCTIONS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-new-resources/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnewresourcesSTEPFUNCTIONSsecuritygroup05F71CC8","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.states","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"farstp-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"farstp-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"farstp-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"farstp-new-resources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"farstp-new-resources-ECR_API-security-group":{"id":"farstp-new-resources-ECR_API-security-group","path":"farstp-new-resources/farstp-new-resources-ECR_API-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/farstp-new-resources-ECR_API-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-new-resources/farstp-new-resources-ECR_API-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"farstp-new-resources-ECR_DKR-security-group":{"id":"farstp-new-resources-ECR_DKR-security-group","path":"farstp-new-resources/farstp-new-resources-ECR_DKR-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/farstp-new-resources-ECR_DKR-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-new-resources/farstp-new-resources-ECR_DKR-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cluster":{"id":"test-cluster","path":"farstp-new-resources/test-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.Cluster","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Cluster","aws:cdk:cloudformation:props":{}}}}},"test-taskdef":{"id":"test-taskdef","path":"farstp-new-resources/test-taskdef","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateTaskDefinition","version":"2.223.0","metadata":["*","*","*"]},"children":{"TaskRole":{"id":"TaskRole","path":"farstp-new-resources/test-taskdef/TaskRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportTaskRole":{"id":"ImportTaskRole","path":"farstp-new-resources/test-taskdef/TaskRole/ImportTaskRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-new-resources/test-taskdef/TaskRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-new-resources/test-taskdef/TaskRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-taskdef/TaskRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testconstructStateMachine3333AAA9"}}],"Version":"2012-10-17"},"policyName":"testtaskdefTaskRoleDefaultPolicy5D591D1C","roles":[{"Ref":"testtaskdefTaskRoleB2DEF113"}]}}}}}}},"Resource":{"id":"Resource","path":"farstp-new-resources/test-taskdef/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnTaskDefinition","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::TaskDefinition","aws:cdk:cloudformation:props":{"containerDefinitions":[{"essential":true,"image":"nginx","memoryReservation":512,"name":"test-container","portMappings":[{"containerPort":8080,"protocol":"tcp"}],"environment":[{"name":"CUSTOM_NAME","value":{"Ref":"testconstructStateMachine3333AAA9"}}]}],"cpu":"256","family":"farstpnewresourcestesttaskdefAC23A4B2","memory":"512","networkMode":"awsvpc","requiresCompatibilities":["FARGATE"],"taskRoleArn":{"Fn::GetAtt":["testtaskdefTaskRoleB2DEF113","Arn"]}}}},"test-container":{"id":"test-container","path":"farstp-new-resources/test-taskdef/test-container","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.ContainerDefinition","version":"2.223.0"}}}},"test-sg":{"id":"test-sg","path":"farstp-new-resources/test-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"allowAllOutbound":true,"disableInlineRules":false,"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Construct created security group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-service":{"id":"test-service","path":"farstp-new-resources/test-service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateService","version":"2.223.0","metadata":["*"]},"children":{"Service":{"id":"Service","path":"farstp-new-resources/test-service/Service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnService","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Service","aws:cdk:cloudformation:props":{"cluster":{"Ref":"testclusterDF8B0D19"},"deploymentConfiguration":{"maximumPercent":150,"minimumHealthyPercent":75},"desiredCount":2,"enableEcsManagedTags":false,"launchType":"FARGATE","networkConfiguration":{"awsvpcConfiguration":{"assignPublicIp":"DISABLED","subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroups":[{"Fn::GetAtt":["testsg872EB48A","GroupId"]}]}},"platformVersion":"LATEST","taskDefinition":{"Ref":"testtaskdefF924AD58"}}}}}},"lambdafarstp-test":{"id":"lambdafarstp-test","path":"farstp-new-resources/lambdafarstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"farstp-new-resources/lambdafarstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"farstp-new-resources/lambdafarstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-new-resources/lambdafarstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"farstp-new-resources/lambdafarstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdafarstptestServiceRole3635EEF7","Arn"]},"runtime":"nodejs22.x"}}}}},"taskfarstp-test":{"id":"taskfarstp-test","path":"farstp-new-resources/taskfarstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-construct":{"id":"test-construct","path":"farstp-new-resources/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-fargate-stepfunctions.FargateToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"farstp-new-resources/test-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/farstp-new-resourcestest-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"farstp-new-resources/test-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"farstp-new-resources/test-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"farstp-new-resources/test-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-new-resources/test-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructStateMachineRoleDefaultPolicyF10A684E","roles":[{"Ref":"testconstructStateMachineRoleA396E5D3"}]}}}}}}},"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskfarstp-test\",\"States\":{\"taskfarstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testconstructStateMachineLogGroup2EB4F48B","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testconstructStateMachineRoleA396E5D3","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"farstp-new-resources/test-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testconstructStateMachine3333AAA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"farstp-new-resources/test-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testconstructStateMachine3333AAA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"farstp-new-resources/test-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/test-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testconstructStateMachine3333AAA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}}}},"farstp-new-resources-STEP_FUNCTIONS-security-group":{"id":"farstp-new-resources-STEP_FUNCTIONS-security-group","path":"farstp-new-resources/farstp-new-resources-STEP_FUNCTIONS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-new-resources/farstp-new-resources-STEP_FUNCTIONS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-new-resources/farstp-new-resources-STEP_FUNCTIONS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"farstp-new-resources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"farstp-new-resources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"farstp-new-resources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"farstp-new-resources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"farstp-new-resources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"farstp-new-resources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"farstp-new-resources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"farstp-new-resources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/farstp-no-cloudwatch-alarms.assets.json b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/farstp-no-cloudwatch-alarms.assets.json index 84beff537..7c1ecafd2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/farstp-no-cloudwatch-alarms.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/farstp-no-cloudwatch-alarms.assets.json @@ -16,16 +16,16 @@ } } }, - "a35ac58878f27a4ee5d81a5fc2b52b3935fc5b1c12a1065cfc1f07fc910f227e": { + "37e51638a3db5b44eeff627f53a6dee44ac458bdd3c804c8ac7f2930d5573b7b": { "displayName": "farstp-no-cloudwatch-alarms Template", "source": { "path": "farstp-no-cloudwatch-alarms.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-f1dea7f8": { + "current_account-us-east-1-8548410b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "a35ac58878f27a4ee5d81a5fc2b52b3935fc5b1c12a1065cfc1f07fc910f227e.json", + "objectKey": "37e51638a3db5b44eeff627f53a6dee44ac458bdd3c804c8ac7f2930d5573b7b.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/farstp-no-cloudwatch-alarms.template.json b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/farstp-no-cloudwatch-alarms.template.json index 189450cb7..73d47aa1e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/farstp-no-cloudwatch-alarms.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/farstp-no-cloudwatch-alarms.template.json @@ -1115,7 +1115,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdafarstptestServiceRole3635EEF7" diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/manifest.json index 5b7b74a56..a764e300e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/a35ac58878f27a4ee5d81a5fc2b52b3935fc5b1c12a1065cfc1f07fc910f227e.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/37e51638a3db5b44eeff627f53a6dee44ac458bdd3c804c8ac7f2930d5573b7b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/tree.json index fc473fc80..2edbd5d6d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-stepfunctions/test/integ.farstp-no-cloudwatch-alarms.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"farstp-no-cloudwatch-alarms":{"id":"farstp-no-cloudwatch-alarms","path":"farstp-no-cloudwatch-alarms","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"farstp-no-cloudwatch-alarms/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"farstp-no-cloudwatch-alarms/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"farstp-no-cloudwatch-alarms/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"farstp-no-cloudwatch-alarms/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"farstp-no-cloudwatch-alarms/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"ECR_API":{"id":"ECR_API","path":"farstp-no-cloudwatch-alarms/Vpc/ECR_API","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/ECR_API/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnocloudwatchalarmsECRAPIsecuritygroup82DA60D3","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.api","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ECR_DKR":{"id":"ECR_DKR","path":"farstp-no-cloudwatch-alarms/Vpc/ECR_DKR","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/ECR_DKR/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnocloudwatchalarmsECRDKRsecuritygroup230C35AF","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.dkr","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"farstp-no-cloudwatch-alarms/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"STEP_FUNCTIONS":{"id":"STEP_FUNCTIONS","path":"farstp-no-cloudwatch-alarms/Vpc/STEP_FUNCTIONS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/STEP_FUNCTIONS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnocloudwatchalarmsSTEPFUNCTIONSsecuritygroup08C40421","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.states","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"farstp-no-cloudwatch-alarms/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"farstp-no-cloudwatch-alarms/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"farstp-no-cloudwatch-alarms/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"farstp-no-cloudwatch-alarms/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"farstp-no-cloudwatch-alarms-ECR_API-security-group":{"id":"farstp-no-cloudwatch-alarms-ECR_API-security-group","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_API-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_API-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_API-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"farstp-no-cloudwatch-alarms-ECR_DKR-security-group":{"id":"farstp-no-cloudwatch-alarms-ECR_DKR-security-group","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_DKR-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_DKR-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_DKR-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cluster":{"id":"test-cluster","path":"farstp-no-cloudwatch-alarms/test-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.Cluster","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Cluster","aws:cdk:cloudformation:props":{}}}}},"test-taskdef":{"id":"test-taskdef","path":"farstp-no-cloudwatch-alarms/test-taskdef","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateTaskDefinition","version":"2.223.0","metadata":["*","*","*"]},"children":{"TaskRole":{"id":"TaskRole","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportTaskRole":{"id":"ImportTaskRole","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole/ImportTaskRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testconstructStateMachine3333AAA9"}}],"Version":"2012-10-17"},"policyName":"testtaskdefTaskRoleDefaultPolicy5D591D1C","roles":[{"Ref":"testtaskdefTaskRoleB2DEF113"}]}}}}}}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-taskdef/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnTaskDefinition","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::TaskDefinition","aws:cdk:cloudformation:props":{"containerDefinitions":[{"essential":true,"image":"nginx","memoryReservation":512,"name":"test-container","portMappings":[{"containerPort":8080,"protocol":"tcp"}],"environment":[{"name":"STATE_MACHINE_ARN","value":{"Ref":"testconstructStateMachine3333AAA9"}}]}],"cpu":"256","family":"farstpnocloudwatchalarmstesttaskdef4B93DE32","memory":"512","networkMode":"awsvpc","requiresCompatibilities":["FARGATE"],"taskRoleArn":{"Fn::GetAtt":["testtaskdefTaskRoleB2DEF113","Arn"]}}}},"test-container":{"id":"test-container","path":"farstp-no-cloudwatch-alarms/test-taskdef/test-container","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.ContainerDefinition","version":"2.223.0"}}}},"test-sg":{"id":"test-sg","path":"farstp-no-cloudwatch-alarms/test-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"allowAllOutbound":true,"disableInlineRules":false,"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Construct created security group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-service":{"id":"test-service","path":"farstp-no-cloudwatch-alarms/test-service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateService","version":"2.223.0","metadata":["*"]},"children":{"Service":{"id":"Service","path":"farstp-no-cloudwatch-alarms/test-service/Service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnService","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Service","aws:cdk:cloudformation:props":{"cluster":{"Ref":"testclusterDF8B0D19"},"deploymentConfiguration":{"maximumPercent":150,"minimumHealthyPercent":75},"desiredCount":2,"enableEcsManagedTags":false,"launchType":"FARGATE","networkConfiguration":{"awsvpcConfiguration":{"assignPublicIp":"DISABLED","subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroups":[{"Fn::GetAtt":["testsg872EB48A","GroupId"]}]}},"platformVersion":"LATEST","taskDefinition":{"Ref":"testtaskdefF924AD58"}}}}}},"lambdafarstp-test":{"id":"lambdafarstp-test","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdafarstptestServiceRole3635EEF7","Arn"]},"runtime":"nodejs20.x"}}}}},"taskfarstp-test":{"id":"taskfarstp-test","path":"farstp-no-cloudwatch-alarms/taskfarstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-construct":{"id":"test-construct","path":"farstp-no-cloudwatch-alarms/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-fargate-stepfunctions.FargateToStepfunctions","version":"2.94.0"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/farstp-no-cloudwatch-alarmstest-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructStateMachineRoleDefaultPolicyF10A684E","roles":[{"Ref":"testconstructStateMachineRoleA396E5D3"}]}}}}}}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskfarstp-test\",\"States\":{\"taskfarstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testconstructStateMachineLogGroup2EB4F48B","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testconstructStateMachineRoleA396E5D3","Arn"]}}}}}}}},"farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group":{"id":"farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"farstp-no-cloudwatch-alarms/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"farstp-no-cloudwatch-alarms/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"farstp-no-cloudwatch-alarms/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"farstp-no-cloudwatch-alarms":{"id":"farstp-no-cloudwatch-alarms","path":"farstp-no-cloudwatch-alarms","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"farstp-no-cloudwatch-alarms/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"farstp-no-cloudwatch-alarms/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"farstp-no-cloudwatch-alarms/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"farstp-no-cloudwatch-alarms/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"farstp-no-cloudwatch-alarms/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"farstp-no-cloudwatch-alarms/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"farstp-no-cloudwatch-alarms/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"ECR_API":{"id":"ECR_API","path":"farstp-no-cloudwatch-alarms/Vpc/ECR_API","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/ECR_API/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnocloudwatchalarmsECRAPIsecuritygroup82DA60D3","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.api","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ECR_DKR":{"id":"ECR_DKR","path":"farstp-no-cloudwatch-alarms/Vpc/ECR_DKR","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/ECR_DKR/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnocloudwatchalarmsECRDKRsecuritygroup230C35AF","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.ecr.dkr","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"farstp-no-cloudwatch-alarms/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"STEP_FUNCTIONS":{"id":"STEP_FUNCTIONS","path":"farstp-no-cloudwatch-alarms/Vpc/STEP_FUNCTIONS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/Vpc/STEP_FUNCTIONS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"farstp-no-cloudwatch-alarms/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["farstpnocloudwatchalarmsSTEPFUNCTIONSsecuritygroup08C40421","GroupId"]}],"serviceName":"com.amazonaws.us-east-1.states","subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"farstp-no-cloudwatch-alarms/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"farstp-no-cloudwatch-alarms/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"farstp-no-cloudwatch-alarms/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"farstp-no-cloudwatch-alarms/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"farstp-no-cloudwatch-alarms-ECR_API-security-group":{"id":"farstp-no-cloudwatch-alarms-ECR_API-security-group","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_API-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_API-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_API-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"farstp-no-cloudwatch-alarms-ECR_DKR-security-group":{"id":"farstp-no-cloudwatch-alarms-ECR_DKR-security-group","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_DKR-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_DKR-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-ECR_DKR-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cluster":{"id":"test-cluster","path":"farstp-no-cloudwatch-alarms/test-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.Cluster","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Cluster","aws:cdk:cloudformation:props":{}}}}},"test-taskdef":{"id":"test-taskdef","path":"farstp-no-cloudwatch-alarms/test-taskdef","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateTaskDefinition","version":"2.223.0","metadata":["*","*","*"]},"children":{"TaskRole":{"id":"TaskRole","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportTaskRole":{"id":"ImportTaskRole","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole/ImportTaskRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-taskdef/TaskRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testconstructStateMachine3333AAA9"}}],"Version":"2012-10-17"},"policyName":"testtaskdefTaskRoleDefaultPolicy5D591D1C","roles":[{"Ref":"testtaskdefTaskRoleB2DEF113"}]}}}}}}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-taskdef/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnTaskDefinition","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::TaskDefinition","aws:cdk:cloudformation:props":{"containerDefinitions":[{"essential":true,"image":"nginx","memoryReservation":512,"name":"test-container","portMappings":[{"containerPort":8080,"protocol":"tcp"}],"environment":[{"name":"STATE_MACHINE_ARN","value":{"Ref":"testconstructStateMachine3333AAA9"}}]}],"cpu":"256","family":"farstpnocloudwatchalarmstesttaskdef4B93DE32","memory":"512","networkMode":"awsvpc","requiresCompatibilities":["FARGATE"],"taskRoleArn":{"Fn::GetAtt":["testtaskdefTaskRoleB2DEF113","Arn"]}}}},"test-container":{"id":"test-container","path":"farstp-no-cloudwatch-alarms/test-taskdef/test-container","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.ContainerDefinition","version":"2.223.0"}}}},"test-sg":{"id":"test-sg","path":"farstp-no-cloudwatch-alarms/test-sg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"allowAllOutbound":true,"disableInlineRules":false,"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-sg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Construct created security group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-service":{"id":"test-service","path":"farstp-no-cloudwatch-alarms/test-service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.FargateService","version":"2.223.0","metadata":["*"]},"children":{"Service":{"id":"Service","path":"farstp-no-cloudwatch-alarms/test-service/Service","constructInfo":{"fqn":"aws-cdk-lib.aws_ecs.CfnService","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ECS::Service","aws:cdk:cloudformation:props":{"cluster":{"Ref":"testclusterDF8B0D19"},"deploymentConfiguration":{"maximumPercent":150,"minimumHealthyPercent":75},"desiredCount":2,"enableEcsManagedTags":false,"launchType":"FARGATE","networkConfiguration":{"awsvpcConfiguration":{"assignPublicIp":"DISABLED","subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroups":[{"Fn::GetAtt":["testsg872EB48A","GroupId"]}]}},"platformVersion":"LATEST","taskDefinition":{"Ref":"testtaskdefF924AD58"}}}}}},"lambdafarstp-test":{"id":"lambdafarstp-test","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/lambdafarstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdafarstptestServiceRole3635EEF7","Arn"]},"runtime":"nodejs22.x"}}}}},"taskfarstp-test":{"id":"taskfarstp-test","path":"farstp-no-cloudwatch-alarms/taskfarstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-construct":{"id":"test-construct","path":"farstp-no-cloudwatch-alarms/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-fargate-stepfunctions.FargateToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/farstp-no-cloudwatch-alarmstest-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructStateMachineRoleDefaultPolicyF10A684E","roles":[{"Ref":"testconstructStateMachineRoleA396E5D3"}]}}}}}}},"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/test-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"taskfarstp-test\",\"States\":{\"taskfarstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdafarstptest04DC4058","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testconstructStateMachineLogGroup2EB4F48B","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testconstructStateMachineRoleA396E5D3","Arn"]}}}}}}}},"farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group":{"id":"farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"farstp-no-cloudwatch-alarms/farstp-no-cloudwatch-alarms-STEP_FUNCTIONS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"farstp-no-cloudwatch-alarms/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"farstp-no-cloudwatch-alarms/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"farstp-no-cloudwatch-alarms/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"farstp-no-cloudwatch-alarms/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.adoc b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.adoc index bc8dc7088..c4f6ead48 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.adoc @@ -51,7 +51,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -112,7 +112,7 @@ import software.amazon.awsconstructs.services.iotlambdadynamodb.*; new IotToLambdaToDynamoDB(this, "test-iot-lambda-dynamodb-stack", new IotToLambdaToDynamoDBProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/integ.json index ccefcc459..d2c966094 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest/DeployAssert", "assertionStackName": "iotlamddbiotlambdadynamodbIntegDefaultTestDeployAssert78E90BBB" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddb-iot-lambda-dynamodb.assets.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddb-iot-lambda-dynamodb.assets.json index 61793354a..aad627baf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddb-iot-lambda-dynamodb.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddb-iot-lambda-dynamodb.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { + "displayName": "test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "71ff56d2c9f287593abd4417b725bc92e673b2d61dd4044ca9df0447da1fda49": { + "322d1cac9849b59c95d1d6bd253e90168be2dbfe166f6c4945c0ed2b24a9d9e4": { + "displayName": "iotlamddb-iot-lambda-dynamodb Template", "source": { "path": "iotlamddb-iot-lambda-dynamodb.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-2f415e71": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "71ff56d2c9f287593abd4417b725bc92e673b2d61dd4044ca9df0447da1fda49.json", + "objectKey": "322d1cac9849b59c95d1d6bd253e90168be2dbfe166f6c4945c0ed2b24a9d9e4.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddb-iot-lambda-dynamodb.template.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddb-iot-lambda-dynamodb.template.json index 76213e053..408f66c8d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddb-iot-lambda-dynamodb.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddb-iot-lambda-dynamodb.template.json @@ -113,7 +113,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -130,7 +130,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddbiotlambdadynamodbIntegDefaultTestDeployAssert78E90BBB.assets.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddbiotlambdadynamodbIntegDefaultTestDeployAssert78E90BBB.assets.json index 0d5b44853..24b1252f1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddbiotlambdadynamodbIntegDefaultTestDeployAssert78E90BBB.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/iotlamddbiotlambdadynamodbIntegDefaultTestDeployAssert78E90BBB.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "iotlamddbiotlambdadynamodbIntegDefaultTestDeployAssert78E90BBB Template", "source": { "path": "iotlamddbiotlambdadynamodbIntegDefaultTestDeployAssert78E90BBB.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/manifest.json index b11441eec..22fac7320 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "iotlamddbiotlambdadynamodbIntegDefaultTestDeployAssert78E90BBB.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/71ff56d2c9f287593abd4417b725bc92e673b2d61dd4044ca9df0447da1fda49.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/322d1cac9849b59c95d1d6bd253e90168be2dbfe166f6c4945c0ed2b24a9d9e4.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -271,10 +271,12 @@ "data": { "billingMode": "PAY_PER_REQUEST", "encryption": "AWS_MANAGED", - "pointInTimeRecovery": true, "partitionKey": { "name": "*", "type": "S" + }, + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true } } } @@ -317,7 +319,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/tree.json index 7a31fc603..40d4dce69 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-iot-lambda-dynamodb.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"iotlamddb-iot-lambda-dynamodb":{"id":"iotlamddb-iot-lambda-dynamodb","path":"iotlamddb-iot-lambda-dynamodb","children":{"test-iot-lambda-dynamodb-stack":{"id":"test-iot-lambda-dynamodb-stack","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack","children":{"LambdaToDynamoDB":{"id":"LambdaToDynamoDB","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBDynamoTableE17E5733","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRoleDefaultPolicy2B35234F","roles":[{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction","children":{"Code":{"id":"Code","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBDynamoTableE17E5733"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctioninlinePolicyAddedToExecutionRole0B0FADEBF","roles":[{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"AwsIotLambdaInvokePermission-1":{"id":"AwsIotLambdaInvokePermission-1","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/AwsIotLambdaInvokePermission-1","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunction5165A7EE","Arn"]},"principal":"iot.amazonaws.com","sourceArn":{"Fn::GetAtt":["testiotlambdadynamodbstackIotToLambdaIotTopic74F5E3BB","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"DynamoTable":{"id":"DynamoTable","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable","children":{"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.186.0"}},"ScalingRole":{"id":"ScalingRole","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.186.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":true,"partitionKey":{"name":"*","type":"S"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.80.0"}},"IotToLambda":{"id":"IotToLambda","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/IotToLambda","children":{"IotTopic":{"id":"IotTopic","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/IotToLambda/IotTopic","attributes":{"aws:cdk:cloudformation:type":"AWS::IoT::TopicRule","aws:cdk:cloudformation:props":{"topicRulePayload":{"ruleDisabled":false,"actions":[{"lambda":{"functionArn":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunction5165A7EE","Arn"]}}}],"sql":"SELECT * FROM 'connectedcar/dtc/#'","description":"Processing of DTC messages from the AWS Connected Vehicle Solution."}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iot.CfnTopicRule","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda.IotToLambda","version":"2.80.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda-dynamodb.IotToLambdaToDynamoDB","version":"2.80.0"}},"Integ":{"id":"Integ","path":"iotlamddb-iot-lambda-dynamodb/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlamddb-iot-lambda-dynamodb/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlamddb-iot-lambda-dynamodb/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"iotlamddb-iot-lambda-dynamodb":{"id":"iotlamddb-iot-lambda-dynamodb","path":"iotlamddb-iot-lambda-dynamodb","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-iot-lambda-dynamodb-stack":{"id":"test-iot-lambda-dynamodb-stack","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda-dynamodb.IotToLambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaToDynamoDB":{"id":"LambdaToDynamoDB","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBDynamoTableE17E5733","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRoleDefaultPolicy2B35234F","roles":[{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBDynamoTableE17E5733"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctioninlinePolicyAddedToExecutionRole0B0FADEBF","roles":[{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05"}]}}}}},"AwsIotLambdaInvokePermission-1":{"id":"AwsIotLambdaInvokePermission-1","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/AwsIotLambdaInvokePermission-1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunction5165A7EE","Arn"]},"principal":"iot.amazonaws.com","sourceArn":{"Fn::GetAtt":["testiotlambdadynamodbstackIotToLambdaIotTopic74F5E3BB","Arn"]}}}}}},"DynamoTable":{"id":"DynamoTable","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"IotToLambda":{"id":"IotToLambda","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/IotToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda.IotToLambda","version":"2.95.1"},"children":{"IotTopic":{"id":"IotTopic","path":"iotlamddb-iot-lambda-dynamodb/test-iot-lambda-dynamodb-stack/IotToLambda/IotTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_iot.CfnTopicRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IoT::TopicRule","aws:cdk:cloudformation:props":{"topicRulePayload":{"ruleDisabled":false,"actions":[{"lambda":{"functionArn":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunction5165A7EE","Arn"]}}}],"sql":"SELECT * FROM 'connectedcar/dtc/#'","description":"Processing of DTC messages from the AWS Connected Vehicle Solution."}}}}}}}},"Integ":{"id":"Integ","path":"iotlamddb-iot-lambda-dynamodb/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlamddb-iot-lambda-dynamodb/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlamddb-iot-lambda-dynamodb/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlamddb-iot-lambda-dynamodb/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/iotlamddb-with-vpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/iotlamddb-with-vpc.assets.json index fa811eb17..6370f751d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/iotlamddb-with-vpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/iotlamddb-with-vpc.assets.json @@ -29,16 +29,16 @@ } } }, - "d26126f4eb6fe4d58c1d653df12e5e0175d77a3c6e1576b4dd05d24b004a0773": { + "6af090ca70e1f5677acce7200cee3a4bade9b53368fa6b0cd42cd9d7fccac806": { "displayName": "iotlamddb-with-vpc Template", "source": { "path": "iotlamddb-with-vpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-7981aa42": { + "current_account-current_region-e413454f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "d26126f4eb6fe4d58c1d653df12e5e0175d77a3c6e1576b4dd05d24b004a0773.json", + "objectKey": "6af090ca70e1f5677acce7200cee3a4bade9b53368fa6b0cd42cd9d7fccac806.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/iotlamddb-with-vpc.template.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/iotlamddb-with-vpc.template.json index 0225f7422..87d256246 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/iotlamddb-with-vpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/iotlamddb-with-vpc.template.json @@ -181,7 +181,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/manifest.json index aaae1c446..2e9aa6e4e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d26126f4eb6fe4d58c1d653df12e5e0175d77a3c6e1576b4dd05d24b004a0773.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6af090ca70e1f5677acce7200cee3a4bade9b53368fa6b0cd42cd9d7fccac806.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/tree.json index fd7575396..4b12f3100 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iotlamddb-with-vpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"iotlamddb-with-vpc":{"id":"iotlamddb-with-vpc","path":"iotlamddb-with-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-iot-lambda-dynamodb-stack":{"id":"test-iot-lambda-dynamodb-stack","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda-dynamodb.IotToLambdaToDynamoDB","version":"2.94.0"},"children":{"LambdaToDynamoDB":{"id":"LambdaToDynamoDB","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBDynamoTableE17E5733","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRoleDefaultPolicy2B35234F","roles":[{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","CUSTOM_TABLE_NAME":{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBDynamoTableE17E5733"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet1Subnet3AB7ADA5"},{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet2SubnetBDEE1FAE"}],"securityGroupIds":[{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBReplaceDefaultSecurityGroupsecuritygroup7D851D3B","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctioninlinePolicyAddedToExecutionRole0B0FADEBF","roles":[{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05"}]}}}}},"AwsIotLambdaInvokePermission-1":{"id":"AwsIotLambdaInvokePermission-1","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/AwsIotLambdaInvokePermission-1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunction5165A7EE","Arn"]},"principal":"iot.amazonaws.com","sourceArn":{"Fn::GetAtt":["testiotlambdadynamodbstackIotToLambdaIotTopic74F5E3BB","Arn"]}}}}}},"DynamoTable":{"id":"DynamoTable","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Vpc":{"id":"Vpc","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}},"Acl":{"id":"Acl","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet1RouteTableE28AAAB5"},"subnetId":{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet1Subnet3AB7ADA5"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}},"Acl":{"id":"Acl","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet2RouteTableAF607A65"},"subnetId":{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet2SubnetBDEE1FAE"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testiotlambdadynamodbstackVpcFlowLogLogGroup0BA54CDB","Arn"]}}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackVpcFlowLogIAMRoleDefaultPolicy8C209270","roles":[{"Ref":"testiotlambdadynamodbstackVpcFlowLogIAMRole84CD262B"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["testiotlambdadynamodbstackVpcFlowLogIAMRole84CD262B","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"testiotlambdadynamodbstackVpcFlowLogLogGroup0BA54CDB"},"resourceId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"},"resourceType":"VPC","tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"DDB":{"id":"DDB","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/DDB","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/DDB/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc"}],"routeTableIds":[{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet1RouteTableE28AAAB5"},{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet2RouteTableAF607A65"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".dynamodb"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}}}}}},"IotToLambda":{"id":"IotToLambda","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/IotToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda.IotToLambda","version":"2.94.0"},"children":{"IotTopic":{"id":"IotTopic","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/IotToLambda/IotTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_iot.CfnTopicRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IoT::TopicRule","aws:cdk:cloudformation:props":{"topicRulePayload":{"ruleDisabled":false,"actions":[{"lambda":{"functionArn":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunction5165A7EE","Arn"]}}}],"sql":"SELECT * FROM 'connectedcar/dtc/#'","description":"Processing of DTC messages from the AWS Connected Vehicle Solution."}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"iotlamddb-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"iotlamddb-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"iotlamddb-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"iotlamddb-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"iotlamddb-with-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"iotlamddb-with-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"iotlamddb-with-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"iotlamddb-with-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlamddb-with-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlamddb-with-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlamddb-with-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlamddb-with-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"iotlamddb-with-vpc":{"id":"iotlamddb-with-vpc","path":"iotlamddb-with-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-iot-lambda-dynamodb-stack":{"id":"test-iot-lambda-dynamodb-stack","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda-dynamodb.IotToLambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaToDynamoDB":{"id":"LambdaToDynamoDB","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBDynamoTableE17E5733","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRoleDefaultPolicy2B35234F","roles":[{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","CUSTOM_TABLE_NAME":{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBDynamoTableE17E5733"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet1Subnet3AB7ADA5"},{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet2SubnetBDEE1FAE"}],"securityGroupIds":[{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBReplaceDefaultSecurityGroupsecuritygroup7D851D3B","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctioninlinePolicyAddedToExecutionRole0B0FADEBF","roles":[{"Ref":"testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunctionServiceRole31915E05"}]}}}}},"AwsIotLambdaInvokePermission-1":{"id":"AwsIotLambdaInvokePermission-1","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/LambdaFunction/AwsIotLambdaInvokePermission-1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunction5165A7EE","Arn"]},"principal":"iot.amazonaws.com","sourceArn":{"Fn::GetAtt":["testiotlambdadynamodbstackIotToLambdaIotTopic74F5E3BB","Arn"]}}}}}},"DynamoTable":{"id":"DynamoTable","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/LambdaToDynamoDB/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Vpc":{"id":"Vpc","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}},"Acl":{"id":"Acl","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet1RouteTableE28AAAB5"},"subnetId":{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet1Subnet3AB7ADA5"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}},"Acl":{"id":"Acl","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet2RouteTableAF607A65"},"subnetId":{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet2SubnetBDEE1FAE"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testiotlambdadynamodbstackVpcFlowLogLogGroup0BA54CDB","Arn"]}}],"Version":"2012-10-17"},"policyName":"testiotlambdadynamodbstackVpcFlowLogIAMRoleDefaultPolicy8C209270","roles":[{"Ref":"testiotlambdadynamodbstackVpcFlowLogIAMRole84CD262B"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["testiotlambdadynamodbstackVpcFlowLogIAMRole84CD262B","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"testiotlambdadynamodbstackVpcFlowLogLogGroup0BA54CDB"},"resourceId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"},"resourceType":"VPC","tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"DDB":{"id":"DDB","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/DDB","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc/DDB/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/Vpc"}],"routeTableIds":[{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet1RouteTableE28AAAB5"},{"Ref":"testiotlambdadynamodbstackVpcisolatedSubnet2RouteTableAF607A65"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".dynamodb"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"testiotlambdadynamodbstackVpc1986A4BB"}}}}}}}},"IotToLambda":{"id":"IotToLambda","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/IotToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda.IotToLambda","version":"2.95.1"},"children":{"IotTopic":{"id":"IotTopic","path":"iotlamddb-with-vpc/test-iot-lambda-dynamodb-stack/IotToLambda/IotTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_iot.CfnTopicRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IoT::TopicRule","aws:cdk:cloudformation:props":{"topicRulePayload":{"ruleDisabled":false,"actions":[{"lambda":{"functionArn":{"Fn::GetAtt":["testiotlambdadynamodbstackLambdaToDynamoDBLambdaFunction5165A7EE","Arn"]}}}],"sql":"SELECT * FROM 'connectedcar/dtc/#'","description":"Processing of DTC messages from the AWS Connected Vehicle Solution."}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"iotlamddb-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"iotlamddb-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"iotlamddb-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"iotlamddb-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"iotlamddb-with-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"iotlamddb-with-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"iotlamddb-with-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"iotlamddb-with-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlamddb-with-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlamddb-with-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlamddb-with-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlamddb-with-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.adoc index 2f38db284..ff534e07a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.adoc @@ -49,7 +49,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: IotToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -110,7 +110,7 @@ import software.amazon.awsconstructs.services.iotlambda.*; new IotToLambda(this, "test-iot-lambda-integration", new IotToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/integ.json index 3be18d700..859550f33 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "iotlam-iot-lambda-new-func/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "iotlam-iot-lambda-new-func/Integ/DefaultTest/DeployAssert", "assertionStackName": "iotlamiotlambdanewfuncIntegDefaultTestDeployAssert4A7D5BFD" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlam-iot-lambda-new-func.assets.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlam-iot-lambda-new-func.assets.json index 48309b1ca..9dd36f0eb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlam-iot-lambda-new-func.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlam-iot-lambda-new-func.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { + "displayName": "test-iot-lambda-integration/LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "f2aefc220f5fa6638f80e958c7a942487db3e323b7948289c85311c801c82bd0": { + "70fec1235ec199cd83630f13be032070f2271827c7adcc9fdd1438b867496d5e": { + "displayName": "iotlam-iot-lambda-new-func Template", "source": { "path": "iotlam-iot-lambda-new-func.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-cbfce55b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f2aefc220f5fa6638f80e958c7a942487db3e323b7948289c85311c801c82bd0.json", + "objectKey": "70fec1235ec199cd83630f13be032070f2271827c7adcc9fdd1438b867496d5e.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlam-iot-lambda-new-func.template.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlam-iot-lambda-new-func.template.json index 5f4bf3540..c78ea8bfd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlam-iot-lambda-new-func.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlam-iot-lambda-new-func.template.json @@ -69,7 +69,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -83,7 +83,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlamiotlambdanewfuncIntegDefaultTestDeployAssert4A7D5BFD.assets.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlamiotlambdanewfuncIntegDefaultTestDeployAssert4A7D5BFD.assets.json index 907fcbb4c..a0ad00c6b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlamiotlambdanewfuncIntegDefaultTestDeployAssert4A7D5BFD.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/iotlamiotlambdanewfuncIntegDefaultTestDeployAssert4A7D5BFD.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "iotlamiotlambdanewfuncIntegDefaultTestDeployAssert4A7D5BFD Template", "source": { "path": "iotlamiotlambdanewfuncIntegDefaultTestDeployAssert4A7D5BFD.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/manifest.json index 920be3204..538109172 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "iotlamiotlambdanewfuncIntegDefaultTestDeployAssert4A7D5BFD.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f2aefc220f5fa6638f80e958c7a942487db3e323b7948289c85311c801c82bd0.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/70fec1235ec199cd83630f13be032070f2271827c7adcc9fdd1438b867496d5e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -213,15 +213,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "testiotlambdaintegrationLambdaFunctionServiceRoleDefaultPolicy0FB2AE4D": [ - { - "type": "aws:cdk:logicalId", - "data": "testiotlambdaintegrationLambdaFunctionServiceRoleDefaultPolicy0FB2AE4D", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "iotlam-iot-lambda-new-func" @@ -231,7 +222,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/tree.json index 9d7cfcc46..966c86c4b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-new-func.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"iotlam-iot-lambda-new-func":{"id":"iotlam-iot-lambda-new-func","path":"iotlam-iot-lambda-new-func","children":{"test-iot-lambda-integration":{"id":"test-iot-lambda-integration","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction","children":{"Code":{"id":"Code","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testiotlambdaintegrationLambdaFunctionServiceRole27C3EE41","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testiotlambdaintegrationLambdaFunctioninlinePolicyAddedToExecutionRole078F7FCF5","roles":[{"Ref":"testiotlambdaintegrationLambdaFunctionServiceRole27C3EE41"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"AwsIotLambdaInvokePermission-1":{"id":"AwsIotLambdaInvokePermission-1","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/AwsIotLambdaInvokePermission-1","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testiotlambdaintegrationLambdaFunctionC5329DBA","Arn"]},"principal":"iot.amazonaws.com","sourceArn":{"Fn::GetAtt":["testiotlambdaintegrationIotTopic18B6A735","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"IotTopic":{"id":"IotTopic","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/IotTopic","attributes":{"aws:cdk:cloudformation:type":"AWS::IoT::TopicRule","aws:cdk:cloudformation:props":{"topicRulePayload":{"ruleDisabled":false,"actions":[{"lambda":{"functionArn":{"Fn::GetAtt":["testiotlambdaintegrationLambdaFunctionC5329DBA","Arn"]}}}],"sql":"SELECT * FROM 'connectedcar/dtc/#'","description":"Processing of DTC messages from the AWS Connected Vehicle Solution."}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iot.CfnTopicRule","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda.IotToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"iotlam-iot-lambda-new-func/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlam-iot-lambda-new-func/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlam-iot-lambda-new-func/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"iotlam-iot-lambda-new-func":{"id":"iotlam-iot-lambda-new-func","path":"iotlam-iot-lambda-new-func","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-iot-lambda-integration":{"id":"test-iot-lambda-integration","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration","constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda.IotToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testiotlambdaintegrationLambdaFunctionServiceRole27C3EE41","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testiotlambdaintegrationLambdaFunctioninlinePolicyAddedToExecutionRole078F7FCF5","roles":[{"Ref":"testiotlambdaintegrationLambdaFunctionServiceRole27C3EE41"}]}}}}},"AwsIotLambdaInvokePermission-1":{"id":"AwsIotLambdaInvokePermission-1","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/LambdaFunction/AwsIotLambdaInvokePermission-1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testiotlambdaintegrationLambdaFunctionC5329DBA","Arn"]},"principal":"iot.amazonaws.com","sourceArn":{"Fn::GetAtt":["testiotlambdaintegrationIotTopic18B6A735","Arn"]}}}}}},"IotTopic":{"id":"IotTopic","path":"iotlam-iot-lambda-new-func/test-iot-lambda-integration/IotTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_iot.CfnTopicRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IoT::TopicRule","aws:cdk:cloudformation:props":{"topicRulePayload":{"ruleDisabled":false,"actions":[{"lambda":{"functionArn":{"Fn::GetAtt":["testiotlambdaintegrationLambdaFunctionC5329DBA","Arn"]}}}],"sql":"SELECT * FROM 'connectedcar/dtc/#'","description":"Processing of DTC messages from the AWS Connected Vehicle Solution."}}}}}},"Integ":{"id":"Integ","path":"iotlam-iot-lambda-new-func/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlam-iot-lambda-new-func/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlam-iot-lambda-new-func/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlam-iot-lambda-new-func/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/integ.json index 459d8ad61..c4414deda 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "iotlam-iot-lambda-use-existing-func/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "iotlam-iot-lambda-use-existing-func/Integ/DefaultTest/DeployAssert", "assertionStackName": "iotlamiotlambdauseexistingfuncIntegDefaultTestDeployAssert1472E245" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlam-iot-lambda-use-existing-func.assets.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlam-iot-lambda-use-existing-func.assets.json index 521d81049..8a0243d3c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlam-iot-lambda-use-existing-func.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlam-iot-lambda-use-existing-func.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { + "displayName": "LambdaFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "dd723deb32de5c16a4dc50a7118096bc60a123d3a8bc834c4f033e315869c648": { + "3416462b58da85753fd9053a67eb709111ce6e10e5f36503fb7d64873d389b2d": { + "displayName": "iotlam-iot-lambda-use-existing-func Template", "source": { "path": "iotlam-iot-lambda-use-existing-func.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-64e28b64": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "dd723deb32de5c16a4dc50a7118096bc60a123d3a8bc834c4f033e315869c648.json", + "objectKey": "3416462b58da85753fd9053a67eb709111ce6e10e5f36503fb7d64873d389b2d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlam-iot-lambda-use-existing-func.template.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlam-iot-lambda-use-existing-func.template.json index 25cb7a0d9..3a6e1a0ea 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlam-iot-lambda-use-existing-func.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlam-iot-lambda-use-existing-func.template.json @@ -69,7 +69,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Environment": { "Variables": { @@ -83,7 +83,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlamiotlambdauseexistingfuncIntegDefaultTestDeployAssert1472E245.assets.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlamiotlambdauseexistingfuncIntegDefaultTestDeployAssert1472E245.assets.json index ff0350967..02f57d019 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlamiotlambdauseexistingfuncIntegDefaultTestDeployAssert1472E245.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/iotlamiotlambdauseexistingfuncIntegDefaultTestDeployAssert1472E245.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "iotlamiotlambdauseexistingfuncIntegDefaultTestDeployAssert1472E245 Template", "source": { "path": "iotlamiotlambdauseexistingfuncIntegDefaultTestDeployAssert1472E245.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/manifest.json index 4ed522335..9445b200c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "iotlamiotlambdauseexistingfuncIntegDefaultTestDeployAssert1472E245.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/dd723deb32de5c16a4dc50a7118096bc60a123d3a8bc834c4f033e315869c648.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3416462b58da85753fd9053a67eb709111ce6e10e5f36503fb7d64873d389b2d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -213,15 +213,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "LambdaFunctionServiceRoleDefaultPolicy126C8897": [ - { - "type": "aws:cdk:logicalId", - "data": "LambdaFunctionServiceRoleDefaultPolicy126C8897", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "iotlam-iot-lambda-use-existing-func" @@ -231,7 +222,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/tree.json index e02fc43ca..4ea202d6a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iotlam-iot-lambda-use-existing-func.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"iotlam-iot-lambda-use-existing-func":{"id":"iotlam-iot-lambda-use-existing-func","path":"iotlam-iot-lambda-use-existing-func","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"iotlam-iot-lambda-use-existing-func/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"iotlam-iot-lambda-use-existing-func/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlam-iot-lambda-use-existing-func/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction","children":{"Code":{"id":"Code","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"AwsIotLambdaInvokePermission-1":{"id":"AwsIotLambdaInvokePermission-1","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/AwsIotLambdaInvokePermission-1","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"iot.amazonaws.com","sourceArn":{"Fn::GetAtt":["testiotlambdaintegrationIotTopic18B6A735","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"test-iot-lambda-integration":{"id":"test-iot-lambda-integration","path":"iotlam-iot-lambda-use-existing-func/test-iot-lambda-integration","children":{"IotTopic":{"id":"IotTopic","path":"iotlam-iot-lambda-use-existing-func/test-iot-lambda-integration/IotTopic","attributes":{"aws:cdk:cloudformation:type":"AWS::IoT::TopicRule","aws:cdk:cloudformation:props":{"topicRulePayload":{"ruleDisabled":false,"actions":[{"lambda":{"functionArn":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}}],"sql":"SELECT * FROM 'connectedcar/dtc/#'","description":"Processing of DTC messages from the AWS Connected Vehicle Solution."}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iot.CfnTopicRule","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda.IotToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"iotlam-iot-lambda-use-existing-func/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlam-iot-lambda-use-existing-func/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlam-iot-lambda-use-existing-func/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"iotlam-iot-lambda-use-existing-func":{"id":"iotlam-iot-lambda-use-existing-func","path":"iotlam-iot-lambda-use-existing-func","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"iotlam-iot-lambda-use-existing-func/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"iotlam-iot-lambda-use-existing-func/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"iotlam-iot-lambda-use-existing-func/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"AwsIotLambdaInvokePermission-1":{"id":"AwsIotLambdaInvokePermission-1","path":"iotlam-iot-lambda-use-existing-func/LambdaFunction/AwsIotLambdaInvokePermission-1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"iot.amazonaws.com","sourceArn":{"Fn::GetAtt":["testiotlambdaintegrationIotTopic18B6A735","Arn"]}}}}}},"test-iot-lambda-integration":{"id":"test-iot-lambda-integration","path":"iotlam-iot-lambda-use-existing-func/test-iot-lambda-integration","constructInfo":{"fqn":"@aws-solutions-constructs/aws-iot-lambda.IotToLambda","version":"2.95.1"},"children":{"IotTopic":{"id":"IotTopic","path":"iotlam-iot-lambda-use-existing-func/test-iot-lambda-integration/IotTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_iot.CfnTopicRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IoT::TopicRule","aws:cdk:cloudformation:props":{"topicRulePayload":{"ruleDisabled":false,"actions":[{"lambda":{"functionArn":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}}],"sql":"SELECT * FROM 'connectedcar/dtc/#'","description":"Processing of DTC messages from the AWS Connected Vehicle Solution."}}}}}},"Integ":{"id":"Integ","path":"iotlam-iot-lambda-use-existing-func/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlam-iot-lambda-use-existing-func/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"iotlam-iot-lambda-use-existing-func/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"iotlam-iot-lambda-use-existing-func/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88/index.js b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88/index.js new file mode 100644 index 000000000..e5a503c14 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `//stub//` + }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/integ.json index 99ae1dff8..666b39325 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "kinfhss3-existingStreamObj/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "kinfhss3-existingStreamObj/Integ/DefaultTest/DeployAssert", "assertionStackName": "kinfhss3existingStreamObjIntegDefaultTestDeployAssertAE590A82" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3-existingStreamObj.assets.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3-existingStreamObj.assets.json index 28849319d..0564c5535 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3-existingStreamObj.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3-existingStreamObj.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88": { + "displayName": "test-kinesis-lambda/LambdaFunction/Code", "source": { "path": "asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-c00f4823": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "5c8d96b6c5d610f1db3cab3482a104908fbcda8c34e9c106bbc3a1d98af401b1": { + "58d7cc0b617e93382fd187a1a75a9312c0038a734aaa974dd4fccfe514c95d3b": { + "displayName": "kinfhss3-existingStreamObj Template", "source": { "path": "kinfhss3-existingStreamObj.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-670f3ccd": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "5c8d96b6c5d610f1db3cab3482a104908fbcda8c34e9c106bbc3a1d98af401b1.json", + "objectKey": "58d7cc0b617e93382fd187a1a75a9312c0038a734aaa974dd4fccfe514c95d3b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3-existingStreamObj.template.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3-existingStreamObj.template.json index 490d67609..d0154d768 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3-existingStreamObj.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3-existingStreamObj.template.json @@ -146,7 +146,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3existingStreamObjIntegDefaultTestDeployAssertAE590A82.assets.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3existingStreamObjIntegDefaultTestDeployAssertAE590A82.assets.json index 1898e682b..6b9194745 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3existingStreamObjIntegDefaultTestDeployAssertAE590A82.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/kinfhss3existingStreamObjIntegDefaultTestDeployAssertAE590A82.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "kinfhss3existingStreamObjIntegDefaultTestDeployAssertAE590A82 Template", "source": { "path": "kinfhss3existingStreamObjIntegDefaultTestDeployAssertAE590A82.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/manifest.json index b54c5c4f5..86787226e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "kinfhss3existingStreamObjIntegDefaultTestDeployAssertAE590A82.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5c8d96b6c5d610f1db3cab3482a104908fbcda8c34e9c106bbc3a1d98af401b1.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/58d7cc0b617e93382fd187a1a75a9312c0038a734aaa974dd4fccfe514c95d3b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -362,7 +362,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -382,7 +383,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -610,7 +612,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/tree.json index 48a4067b5..452632303 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.kinfhss3-existingStreamObj.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"kinfhss3-existingStreamObj":{"id":"kinfhss3-existingStreamObj","path":"kinfhss3-existingStreamObj","children":{"test-kinesis-lambda":{"id":"test-kinesis-lambda","path":"kinfhss3-existingStreamObj/test-kinesis-lambda","children":{"KinesisStream":{"id":"KinesisStream","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStream","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStream/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.186.0","metadata":[{"encryption":"MANAGED"}]}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:DescribeStream","kinesis:DescribeStreamConsumer","kinesis:DescribeStreamSummary","kinesis:GetRecords","kinesis:GetShardIterator","kinesis:ListShards","kinesis:ListStreams","kinesis:SubscribeToShard"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesislambdaKinesisStream00F67958","Arn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesislambdaSqsDlqQueueA754ACEA","Arn"]}}],"Version":"2012-10-17"},"policyName":"testkinesislambdaLambdaFunctionServiceRoleDefaultPolicy6FF6B6A5","roles":[{"Ref":"testkinesislambdaLambdaFunctionServiceRole965E2A08"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testkinesislambdaLambdaFunctionServiceRole965E2A08","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testkinesislambdaLambdaFunctioninlinePolicyAddedToExecutionRole049F0C37A","roles":[{"Ref":"testkinesislambdaLambdaFunctionServiceRole965E2A08"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"KinesisEventSource:kinfhss3existingStreamObjtestkinesislambdaKinesisStream06A6475B":{"id":"KinesisEventSource:kinfhss3existingStreamObjtestkinesislambdaKinesisStream06A6475B","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/KinesisEventSource:kinfhss3existingStreamObjtestkinesislambdaKinesisStream06A6475B","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/KinesisEventSource:kinfhss3existingStreamObjtestkinesislambdaKinesisStream06A6475B/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testkinesislambdaSqsDlqQueueA754ACEA","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testkinesislambdaKinesisStream00F67958","Arn"]},"functionName":{"Ref":"testkinesislambdaLambdaFunction7F18F840"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":500,"startingPosition":"TRIM_HORIZON"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","eventSourceArn":"*","startingPositionTimestamp":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/SqsDlqQueue","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/SqsDlqQueue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/SqsDlqQueue/Policy","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/SqsDlqQueue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testkinesislambdaSqsDlqQueueA754ACEA","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testkinesislambdaSqsDlqQueueA754ACEA","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testkinesislambdaSqsDlqQueueA754ACEA"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED"}]}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStreamGetRecordsIteratorAgeAlarm","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisstreams-lambda.KinesisStreamsToLambda","version":"2.80.0"}},"test-existing-stream-firehose-s3-stack":{"id":"test-existing-stream-firehose-s3-stack","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack","children":{"KinesisFirehoseToS3":{"id":"KinesisFirehoseToS3","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3","children":{"S3Bucket":{"id":"S3Bucket","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/S3Bucket","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/S3Bucket/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.186.0"}},"Policy":{"id":"Policy","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/S3Bucket/Policy","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/S3Bucket/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.186.0","metadata":[{"bucket":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.186.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}]},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]}},"firehose-log-group":{"id":"firehose-log-group","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/firehose-log-group","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/firehose-log-group/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}},"firehose-log-stream":{"id":"firehose-log-stream","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/firehose-log-group/firehose-log-stream","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/firehose-log-group/firehose-log-stream/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupE425A6C8"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.186.0","metadata":[{"logGroup":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999,"removalPolicy":"destroy"}]}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehoseRole","children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehoseRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehosePolicy","children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehosePolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupE425A6C8"},":log-stream:",{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupfirehoselogstream5F77A011"}]]}}],"Version":"2012-10-17"},"policyName":"testexistingstreamfirehoses3stackKinesisFirehoseToS3KinesisFirehosePolicyE9C16144","roles":[{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3KinesisFirehoseRoleE4B0266E"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"KinesisFirehose":{"id":"KinesisFirehose","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehose","attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamName":"KinesisFirehosekinfhss3existingSstackKinesisFirehoseToS3A84F50F0","deliveryStreamType":"KinesisStreamAsSource","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3KinesisFirehoseRoleE4B0266E","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupE425A6C8"},"logStreamName":{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupfirehoselogstream5F77A011"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}},"kinesisStreamSourceConfiguration":{"kinesisStreamArn":{"Fn::GetAtt":["testkinesislambdaKinesisStream00F67958","Arn"]},"roleArn":{"Fn::GetAtt":["KinesisStreamsRole2BFD39A5","Arn"]}}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.80.0"}},"KinesisFirehoseToS3aws-managed-key":{"id":"KinesisFirehoseToS3aws-managed-key","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3.KinesisStreamsToKinesisFirehoseToS3","version":"2.80.0"}},"KinesisStreamsRole":{"id":"KinesisStreamsRole","path":"kinfhss3-existingStreamObj/KinesisStreamsRole","children":{"ImportKinesisStreamsRole":{"id":"ImportKinesisStreamsRole","path":"kinfhss3-existingStreamObj/KinesisStreamsRole/ImportKinesisStreamsRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/KinesisStreamsRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"KinesisStreamsRoleRolePolicy","policyDocument":{"Statement":[{"Action":["kinesis:DescribeStream","kinesis:GetRecords","kinesis:GetShardIterator","kinesis:ListShards"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesislambdaKinesisStream00F67958","Arn"]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]}},"Integ":{"id":"Integ","path":"kinfhss3-existingStreamObj/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"kinfhss3-existingStreamObj/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"kinfhss3-existingStreamObj/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"kinfhss3-existingStreamObj/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"kinfhss3-existingStreamObj/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinfhss3-existingStreamObj/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"kinfhss3-existingStreamObj/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinfhss3-existingStreamObj/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"kinfhss3-existingStreamObj":{"id":"kinfhss3-existingStreamObj","path":"kinfhss3-existingStreamObj","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-kinesis-lambda":{"id":"test-kinesis-lambda","path":"kinfhss3-existingStreamObj/test-kinesis-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisstreams-lambda.KinesisStreamsToLambda","version":"2.95.1"},"children":{"KinesisStream":{"id":"KinesisStream","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:DescribeStream","kinesis:DescribeStreamConsumer","kinesis:DescribeStreamSummary","kinesis:GetRecords","kinesis:GetShardIterator","kinesis:ListShards","kinesis:ListStreams","kinesis:SubscribeToShard"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesislambdaKinesisStream00F67958","Arn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesislambdaSqsDlqQueueA754ACEA","Arn"]}}],"Version":"2012-10-17"},"policyName":"testkinesislambdaLambdaFunctionServiceRoleDefaultPolicy6FF6B6A5","roles":[{"Ref":"testkinesislambdaLambdaFunctionServiceRole965E2A08"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testkinesislambdaLambdaFunctionServiceRole965E2A08","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testkinesislambdaLambdaFunctioninlinePolicyAddedToExecutionRole049F0C37A","roles":[{"Ref":"testkinesislambdaLambdaFunctionServiceRole965E2A08"}]}}}}},"KinesisEventSource:kinfhss3existingStreamObjtestkinesislambdaKinesisStream06A6475B":{"id":"KinesisEventSource:kinfhss3existingStreamObjtestkinesislambdaKinesisStream06A6475B","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/KinesisEventSource:kinfhss3existingStreamObjtestkinesislambdaKinesisStream06A6475B","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","eventSourceArn":"*","startingPositionTimestamp":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/LambdaFunction/KinesisEventSource:kinfhss3existingStreamObjtestkinesislambdaKinesisStream06A6475B/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testkinesislambdaSqsDlqQueueA754ACEA","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testkinesislambdaKinesisStream00F67958","Arn"]},"functionName":{"Ref":"testkinesislambdaLambdaFunction7F18F840"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":500,"startingPosition":"TRIM_HORIZON"}}}}}}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/SqsDlqQueue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/SqsDlqQueue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/SqsDlqQueue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/SqsDlqQueue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testkinesislambdaSqsDlqQueueA754ACEA","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testkinesislambdaSqsDlqQueueA754ACEA","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testkinesislambdaSqsDlqQueueA754ACEA"}]}}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-kinesis-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"test-existing-stream-firehose-s3-stack":{"id":"test-existing-stream-firehose-s3-stack","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3.KinesisStreamsToKinesisFirehoseToS3","version":"2.95.1"},"children":{"KinesisFirehoseToS3":{"id":"KinesisFirehoseToS3","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.95.1"},"children":{"S3Bucket":{"id":"S3Bucket","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}]},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"firehose-log-group":{"id":"firehose-log-group","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/firehose-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/firehose-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}},"firehose-log-stream":{"id":"firehose-log-stream","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/firehose-log-group/firehose-log-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.223.0","metadata":[{"logGroup":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/firehose-log-group/firehose-log-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupE425A6C8"}}}}}}}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehoseRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehosePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehosePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupE425A6C8"},":log-stream:",{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupfirehoselogstream5F77A011"}]]}}],"Version":"2012-10-17"},"policyName":"testexistingstreamfirehoses3stackKinesisFirehoseToS3KinesisFirehosePolicyE9C16144","roles":[{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3KinesisFirehoseRoleE4B0266E"}]}}}}},"KinesisFirehose":{"id":"KinesisFirehose","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3/KinesisFirehose","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamName":"KinesisFirehosekinfhss3existingSstackKinesisFirehoseToS3A84F50F0","deliveryStreamType":"KinesisStreamAsSource","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["testexistingstreamfirehoses3stackKinesisFirehoseToS3KinesisFirehoseRoleE4B0266E","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupE425A6C8"},"logStreamName":{"Ref":"testexistingstreamfirehoses3stackKinesisFirehoseToS3firehoseloggroupfirehoselogstream5F77A011"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}},"kinesisStreamSourceConfiguration":{"kinesisStreamArn":{"Fn::GetAtt":["testkinesislambdaKinesisStream00F67958","Arn"]},"roleArn":{"Fn::GetAtt":["KinesisStreamsRole2BFD39A5","Arn"]}}}}}}},"KinesisFirehoseToS3aws-managed-key":{"id":"KinesisFirehoseToS3aws-managed-key","path":"kinfhss3-existingStreamObj/test-existing-stream-firehose-s3-stack/KinesisFirehoseToS3aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}}}},"KinesisStreamsRole":{"id":"KinesisStreamsRole","path":"kinfhss3-existingStreamObj/KinesisStreamsRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportKinesisStreamsRole":{"id":"ImportKinesisStreamsRole","path":"kinfhss3-existingStreamObj/KinesisStreamsRole/ImportKinesisStreamsRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"kinfhss3-existingStreamObj/KinesisStreamsRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"KinesisStreamsRoleRolePolicy","policyDocument":{"Statement":[{"Action":["kinesis:DescribeStream","kinesis:GetRecords","kinesis:GetShardIterator","kinesis:ListShards"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesislambdaKinesisStream00F67958","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"Integ":{"id":"Integ","path":"kinfhss3-existingStreamObj/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"kinfhss3-existingStreamObj/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"kinfhss3-existingStreamObj/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"kinfhss3-existingStreamObj/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"kinfhss3-existingStreamObj/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinfhss3-existingStreamObj/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"kinfhss3-existingStreamObj/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinfhss3-existingStreamObj/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.adoc index 3fe26d73e..f9dce7f40 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.adoc @@ -55,7 +55,7 @@ new KinesisStreamsToLambda(this, 'KinesisToLambdaPattern', { batchSize: 1 }, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -108,7 +108,7 @@ new KinesisStreamsToLambda(this, "KinesisToLambdaPattern", new KinesisStreamsToL .batchSize(1) .build()) .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88/index.js b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88/index.js new file mode 100644 index 000000000..e5a503c14 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `//stub//` + }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/cdk.out index 1f0068d32..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"36.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/integ.json index efdb8ec8f..b6245d59e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "36.0.0", + "version": "48.0.0", "testCases": { "kinlam-existing/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "kinlam-existing/Integ/DefaultTest/DeployAssert", "assertionStackName": "kinlamexistingIntegDefaultTestDeployAssert64C292A9" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlam-existing.assets.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlam-existing.assets.json index 2d15bad2a..5aa9fe946 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlam-existing.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlam-existing.assets.json @@ -1,28 +1,30 @@ { - "version": "36.0.0", + "version": "48.0.0", "files": { "26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88": { + "displayName": "test-fn/Code", "source": { "path": "asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-c00f4823": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "fe0481d6fd666d1d83e996182fea020397cbaa46f7ce40701995b191bf502a13": { + "2c1c9c1149827a8fd74c74a8239f04ed79373db59e24731e18eb528eb981594a": { + "displayName": "kinlam-existing Template", "source": { "path": "kinlam-existing.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-ea63a46f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "fe0481d6fd666d1d83e996182fea020397cbaa46f7ce40701995b191bf502a13.json", + "objectKey": "2c1c9c1149827a8fd74c74a8239f04ed79373db59e24731e18eb528eb981594a.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlam-existing.template.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlam-existing.template.json index c91e69625..86032db41 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlam-existing.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlam-existing.template.json @@ -128,7 +128,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "testroleDefaultPolicy884631E2", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlamexistingIntegDefaultTestDeployAssert64C292A9.assets.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlamexistingIntegDefaultTestDeployAssert64C292A9.assets.json index 7e02c955e..3b9f284ae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlamexistingIntegDefaultTestDeployAssert64C292A9.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/kinlamexistingIntegDefaultTestDeployAssert64C292A9.assets.json @@ -1,13 +1,14 @@ { - "version": "36.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "kinlamexistingIntegDefaultTestDeployAssert64C292A9 Template", "source": { "path": "kinlamexistingIntegDefaultTestDeployAssert64C292A9.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/manifest.json index 7b2969472..43b44cdef 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "36.0.0", + "version": "48.0.0", "artifacts": { "kinlamexistingIntegDefaultTestDeployAssert64C292A9.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/fe0481d6fd666d1d83e996182fea020397cbaa46f7ce40701995b191bf502a13.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2c1c9c1149827a8fd74c74a8239f04ed79373db59e24731e18eb528eb981594a.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -82,54 +82,251 @@ "kinlam-existing.assets" ], "metadata": { + "/kinlam-existing/test-role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/kinlam-existing/test-role/Importtest-role": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/kinlam-existing/test-role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testroleB50A37BE" } ], + "/kinlam-existing/test-role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/kinlam-existing/test-role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testroleDefaultPolicy884631E2" } ], + "/kinlam-existing/test-fn": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "runtime": "*", + "handler": "*", + "code": "*", + "role": "*" + } + } + ], "/kinlam-existing/test-fn/Resource": [ { "type": "aws:cdk:logicalId", "data": "testfn76BCC25C" } ], + "/kinlam-existing/test-fn/KinesisEventSource:kinlamexistingteststream6B91D225": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "target": "*", + "eventSourceArn": "*", + "startingPositionTimestamp": "*", + "metricsConfig": "*", + "supportS3OnFailureDestination": true, + "batchSize": "*", + "bisectBatchOnError": true, + "startingPosition": "LATEST", + "reportBatchItemFailures": "*", + "maxBatchingWindow": "*", + "maxRecordAge": "*", + "retryAttempts": "*", + "parallelizationFactor": "*", + "onFailure": "*", + "tumblingWindow": "*", + "enabled": "*", + "filters": "*", + "filterEncryption": "*" + } + } + ], "/kinlam-existing/test-fn/KinesisEventSource:kinlamexistingteststream6B91D225/Resource": [ { "type": "aws:cdk:logicalId", "data": "testfnKinesisEventSourcekinlamexistingteststream6B91D22533D472A8" } ], + "/kinlam-existing/test-stream": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "shardCount": "*", + "encryption": "MANAGED" + } + } + ], "/kinlam-existing/test-stream/Resource": [ { "type": "aws:cdk:logicalId", "data": "teststream04374A09" } ], + "/kinlam-existing/test-ks-lambda/SqsDlqQueue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED" + } + } + ], "/kinlam-existing/test-ks-lambda/SqsDlqQueue/Resource": [ { "type": "aws:cdk:logicalId", "data": "testkslambdaSqsDlqQueueDE67EC6C" } ], + "/kinlam-existing/test-ks-lambda/SqsDlqQueue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/kinlam-existing/test-ks-lambda/SqsDlqQueue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testkslambdaSqsDlqQueuePolicy48897D8E" } ], + "/kinlam-existing/test-ks-lambda/KinesisStreamGetRecordsIteratorAgeAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/kinlam-existing/test-ks-lambda/KinesisStreamGetRecordsIteratorAgeAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testkslambdaKinesisStreamGetRecordsIteratorAgeAlarmD5DC1A73" } ], + "/kinlam-existing/test-ks-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/kinlam-existing/test-ks-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource": [ { "type": "aws:cdk:logicalId", @@ -156,6 +353,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/tree.json index 96918423f..f0e68f03a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-existing.js.snapshot/tree.json @@ -1,573 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "kinlam-existing": { - "id": "kinlam-existing", - "path": "kinlam-existing", - "children": { - "test-role": { - "id": "test-role", - "path": "kinlam-existing/test-role", - "children": { - "Importtest-role": { - "id": "Importtest-role", - "path": "kinlam-existing/test-role/Importtest-role", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.150.0" - } - }, - "Resource": { - "id": "Resource", - "path": "kinlam-existing/test-role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "LambdaFunctionServiceRolePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents" - ], - "Effect": "Allow", - "Resource": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":logs:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":log-group:/aws/lambda/*" - ] - ] - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.150.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "kinlam-existing/test-role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "kinlam-existing/test-role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "kinesis:DescribeStream", - "kinesis:DescribeStreamConsumer", - "kinesis:DescribeStreamSummary", - "kinesis:GetRecords", - "kinesis:GetShardIterator", - "kinesis:ListShards", - "kinesis:ListStreams", - "kinesis:SubscribeToShard" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "teststream04374A09", - "Arn" - ] - } - }, - { - "Action": [ - "sqs:GetQueueAttributes", - "sqs:GetQueueUrl", - "sqs:SendMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testkslambdaSqsDlqQueueDE67EC6C", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "testroleDefaultPolicy884631E2", - "roles": [ - { - "Ref": "testroleB50A37BE" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.150.0" - } - }, - "test-fn": { - "id": "test-fn", - "path": "kinlam-existing/test-fn", - "children": { - "Code": { - "id": "Code", - "path": "kinlam-existing/test-fn/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "kinlam-existing/test-fn/Code/Stage", - "constructInfo": { - "fqn": "aws-cdk-lib.AssetStaging", - "version": "2.150.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "kinlam-existing/test-fn/Code/AssetBucket", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_s3.BucketBase", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_s3_assets.Asset", - "version": "2.150.0" - } - }, - "Resource": { - "id": "Resource", - "path": "kinlam-existing/test-fn/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88.zip" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "testroleB50A37BE", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.150.0" - } - }, - "KinesisEventSource:kinlamexistingteststream6B91D225": { - "id": "KinesisEventSource:kinlamexistingteststream6B91D225", - "path": "kinlam-existing/test-fn/KinesisEventSource:kinlamexistingteststream6B91D225", - "children": { - "Resource": { - "id": "Resource", - "path": "kinlam-existing/test-fn/KinesisEventSource:kinlamexistingteststream6B91D225/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::EventSourceMapping", - "aws:cdk:cloudformation:props": { - "batchSize": 1, - "bisectBatchOnFunctionError": true, - "destinationConfig": { - "onFailure": { - "destination": { - "Fn::GetAtt": [ - "testkslambdaSqsDlqQueueDE67EC6C", - "Arn" - ] - } - } - }, - "eventSourceArn": { - "Fn::GetAtt": [ - "teststream04374A09", - "Arn" - ] - }, - "functionName": { - "Ref": "testfn76BCC25C" - }, - "maximumRecordAgeInSeconds": 86400, - "maximumRetryAttempts": 500, - "startingPosition": "LATEST" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnEventSourceMapping", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.EventSourceMapping", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.150.0" - } - }, - "test-stream": { - "id": "test-stream", - "path": "kinlam-existing/test-stream", - "children": { - "Resource": { - "id": "Resource", - "path": "kinlam-existing/test-stream/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Kinesis::Stream", - "aws:cdk:cloudformation:props": { - "retentionPeriodHours": 24, - "shardCount": 2, - "streamEncryption": { - "encryptionType": "KMS", - "keyId": "alias/aws/kinesis" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_kinesis.CfnStream", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_kinesis.Stream", - "version": "2.150.0" - } - }, - "test-ks-lambda": { - "id": "test-ks-lambda", - "path": "kinlam-existing/test-ks-lambda", - "children": { - "SqsDlqQueue": { - "id": "SqsDlqQueue", - "path": "kinlam-existing/test-ks-lambda/SqsDlqQueue", - "children": { - "Resource": { - "id": "Resource", - "path": "kinlam-existing/test-ks-lambda/SqsDlqQueue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.150.0" - } - }, - "Policy": { - "id": "Policy", - "path": "kinlam-existing/test-ks-lambda/SqsDlqQueue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "kinlam-existing/test-ks-lambda/SqsDlqQueue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testkslambdaSqsDlqQueueDE67EC6C", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testkslambdaSqsDlqQueueDE67EC6C", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testkslambdaSqsDlqQueueDE67EC6C" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.150.0" - } - }, - "KinesisStreamGetRecordsIteratorAgeAlarm": { - "id": "KinesisStreamGetRecordsIteratorAgeAlarm", - "path": "kinlam-existing/test-ks-lambda/KinesisStreamGetRecordsIteratorAgeAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "kinlam-existing/test-ks-lambda/KinesisStreamGetRecordsIteratorAgeAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "evaluationPeriods": 1, - "metricName": "GetRecords.IteratorAgeMilliseconds", - "namespace": "AWS/Kinesis", - "period": 300, - "statistic": "Maximum", - "threshold": 43200000 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.150.0" - } - }, - "KinesisStreamReadProvisionedThroughputExceededAlarm": { - "id": "KinesisStreamReadProvisionedThroughputExceededAlarm", - "path": "kinlam-existing/test-ks-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "kinlam-existing/test-ks-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Consumer Application is Reading at a Slower Rate Than Expected.", - "comparisonOperator": "GreaterThanThreshold", - "evaluationPeriods": 1, - "metricName": "ReadProvisionedThroughputExceeded", - "namespace": "AWS/Kinesis", - "period": 300, - "statistic": "Average", - "threshold": 0 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-kinesisstreams-lambda.KinesisStreamsToLambda", - "version": "2.63.0" - } - }, - "Integ": { - "id": "Integ", - "path": "kinlam-existing/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "kinlam-existing/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "kinlam-existing/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.3.0" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "kinlam-existing/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "kinlam-existing/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.150.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "kinlam-existing/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.150.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.150.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "kinlam-existing/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.150.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "kinlam-existing/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.150.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.150.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.3.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.150.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"kinlam-existing":{"id":"kinlam-existing","path":"kinlam-existing","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-role":{"id":"test-role","path":"kinlam-existing/test-role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"Importtest-role":{"id":"Importtest-role","path":"kinlam-existing/test-role/Importtest-role","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"kinlam-existing/test-role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"kinlam-existing/test-role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"kinlam-existing/test-role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:DescribeStream","kinesis:DescribeStreamConsumer","kinesis:DescribeStreamSummary","kinesis:GetRecords","kinesis:GetShardIterator","kinesis:ListShards","kinesis:ListStreams","kinesis:SubscribeToShard"],"Effect":"Allow","Resource":{"Fn::GetAtt":["teststream04374A09","Arn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkslambdaSqsDlqQueueDE67EC6C","Arn"]}}],"Version":"2012-10-17"},"policyName":"testroleDefaultPolicy884631E2","roles":[{"Ref":"testroleB50A37BE"}]}}}}}}},"test-fn":{"id":"test-fn","path":"kinlam-existing/test-fn","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"runtime":"*","handler":"*","code":"*","role":"*"}]},"children":{"Code":{"id":"Code","path":"kinlam-existing/test-fn/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"kinlam-existing/test-fn/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"kinlam-existing/test-fn/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"kinlam-existing/test-fn/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88.zip"},"handler":"index.handler","role":{"Fn::GetAtt":["testroleB50A37BE","Arn"]},"runtime":"nodejs22.x"}}},"KinesisEventSource:kinlamexistingteststream6B91D225":{"id":"KinesisEventSource:kinlamexistingteststream6B91D225","path":"kinlam-existing/test-fn/KinesisEventSource:kinlamexistingteststream6B91D225","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","eventSourceArn":"*","startingPositionTimestamp":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"LATEST","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-existing/test-fn/KinesisEventSource:kinlamexistingteststream6B91D225/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":1,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testkslambdaSqsDlqQueueDE67EC6C","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["teststream04374A09","Arn"]},"functionName":{"Ref":"testfn76BCC25C"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":500,"startingPosition":"LATEST"}}}}}}},"test-stream":{"id":"test-stream","path":"kinlam-existing/test-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"shardCount":"*","encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-existing/test-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":2,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"test-ks-lambda":{"id":"test-ks-lambda","path":"kinlam-existing/test-ks-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisstreams-lambda.KinesisStreamsToLambda","version":"2.95.1"},"children":{"SqsDlqQueue":{"id":"SqsDlqQueue","path":"kinlam-existing/test-ks-lambda/SqsDlqQueue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-existing/test-ks-lambda/SqsDlqQueue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"kinlam-existing/test-ks-lambda/SqsDlqQueue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"kinlam-existing/test-ks-lambda/SqsDlqQueue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testkslambdaSqsDlqQueueDE67EC6C","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testkslambdaSqsDlqQueueDE67EC6C","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testkslambdaSqsDlqQueueDE67EC6C"}]}}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"kinlam-existing/test-ks-lambda/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-existing/test-ks-lambda/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"kinlam-existing/test-ks-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-existing/test-ks-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Integ":{"id":"Integ","path":"kinlam-existing/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"kinlam-existing/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"kinlam-existing/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"kinlam-existing/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"kinlam-existing/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinlam-existing/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"kinlam-existing/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinlam-existing/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88/index.js b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88/index.js new file mode 100644 index 000000000..e5a503c14 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `//stub//` + }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/integ.json index 50d5e1fc0..ed31c776b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "kinlam-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "kinlam-no-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "kinlamnoargumentsIntegDefaultTestDeployAssertE5672C42" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlam-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlam-no-arguments.assets.json index 7ca71c546..f23325e8a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlam-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlam-no-arguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88": { + "displayName": "test-kinesisstreams-lambda/LambdaFunction/Code", "source": { "path": "asset.26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-c00f4823": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "75d54d1092862c3f3a3d49f381f746e31ba668f1702b3f06f8897ef19a887aa4": { + "14fda3a96d4a88904a5e1fb681826ecf260206ed76d94369988fbf657a555df8": { + "displayName": "kinlam-no-arguments Template", "source": { "path": "kinlam-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-ca790e58": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "75d54d1092862c3f3a3d49f381f746e31ba668f1702b3f06f8897ef19a887aa4.json", + "objectKey": "14fda3a96d4a88904a5e1fb681826ecf260206ed76d94369988fbf657a555df8.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlam-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlam-no-arguments.template.json index c0dbd10f2..8b2dc6523 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlam-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlam-no-arguments.template.json @@ -146,7 +146,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlamnoargumentsIntegDefaultTestDeployAssertE5672C42.assets.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlamnoargumentsIntegDefaultTestDeployAssertE5672C42.assets.json index 0cbfb2030..7b7035f21 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlamnoargumentsIntegDefaultTestDeployAssertE5672C42.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/kinlamnoargumentsIntegDefaultTestDeployAssertE5672C42.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "kinlamnoargumentsIntegDefaultTestDeployAssertE5672C42 Template", "source": { "path": "kinlamnoargumentsIntegDefaultTestDeployAssertE5672C42.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/manifest.json index fad562025..ac4e1c518 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "kinlamnoargumentsIntegDefaultTestDeployAssertE5672C42.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/75d54d1092862c3f3a3d49f381f746e31ba668f1702b3f06f8897ef19a887aa4.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/14fda3a96d4a88904a5e1fb681826ecf260206ed76d94369988fbf657a555df8.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -362,7 +362,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -382,7 +383,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -417,7 +419,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/tree.json index 2752dd8c2..873b159f4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.kinlam-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"kinlam-no-arguments":{"id":"kinlam-no-arguments","path":"kinlam-no-arguments","children":{"test-kinesisstreams-lambda":{"id":"test-kinesisstreams-lambda","path":"kinlam-no-arguments/test-kinesisstreams-lambda","children":{"KinesisStream":{"id":"KinesisStream","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStream","children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStream/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.186.0","metadata":[{"encryption":"MANAGED"}]}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:DescribeStream","kinesis:DescribeStreamConsumer","kinesis:DescribeStreamSummary","kinesis:GetRecords","kinesis:GetShardIterator","kinesis:ListShards","kinesis:ListStreams","kinesis:SubscribeToShard"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesisstreamslambdaKinesisStream374D6D56","Arn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesisstreamslambdaSqsDlqQueue5971C9BA","Arn"]}}],"Version":"2012-10-17"},"policyName":"testkinesisstreamslambdaLambdaFunctionServiceRoleDefaultPolicy4929C676","roles":[{"Ref":"testkinesisstreamslambdaLambdaFunctionServiceRoleAD98836E"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testkinesisstreamslambdaLambdaFunctionServiceRoleAD98836E","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testkinesisstreamslambdaLambdaFunctioninlinePolicyAddedToExecutionRole0111F49A4","roles":[{"Ref":"testkinesisstreamslambdaLambdaFunctionServiceRoleAD98836E"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"KinesisEventSource:kinlamnoargumentstestkinesisstreamslambdaKinesisStreamB15C5952":{"id":"KinesisEventSource:kinlamnoargumentstestkinesisstreamslambdaKinesisStreamB15C5952","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/KinesisEventSource:kinlamnoargumentstestkinesisstreamslambdaKinesisStreamB15C5952","children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/KinesisEventSource:kinlamnoargumentstestkinesisstreamslambdaKinesisStreamB15C5952/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testkinesisstreamslambdaSqsDlqQueue5971C9BA","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testkinesisstreamslambdaKinesisStream374D6D56","Arn"]},"functionName":{"Ref":"testkinesisstreamslambdaLambdaFunctionB9A91CA7"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":5,"startingPosition":"TRIM_HORIZON"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","eventSourceArn":"*","startingPositionTimestamp":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"kinlam-no-arguments/test-kinesisstreams-lambda/SqsDlqQueue","children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/SqsDlqQueue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"kinlam-no-arguments/test-kinesisstreams-lambda/SqsDlqQueue/Policy","children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/SqsDlqQueue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testkinesisstreamslambdaSqsDlqQueue5971C9BA","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testkinesisstreamslambdaSqsDlqQueue5971C9BA","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testkinesisstreamslambdaSqsDlqQueue5971C9BA"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED"}]}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStreamGetRecordsIteratorAgeAlarm","children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm","children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisstreams-lambda.KinesisStreamsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"kinlam-no-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"kinlam-no-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"kinlam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"kinlam-no-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"kinlam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinlam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"kinlam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinlam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"kinlam-no-arguments":{"id":"kinlam-no-arguments","path":"kinlam-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-kinesisstreams-lambda":{"id":"test-kinesisstreams-lambda","path":"kinlam-no-arguments/test-kinesisstreams-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisstreams-lambda.KinesisStreamsToLambda","version":"2.95.1"},"children":{"KinesisStream":{"id":"KinesisStream","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:DescribeStream","kinesis:DescribeStreamConsumer","kinesis:DescribeStreamSummary","kinesis:GetRecords","kinesis:GetShardIterator","kinesis:ListShards","kinesis:ListStreams","kinesis:SubscribeToShard"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesisstreamslambdaKinesisStream374D6D56","Arn"]}},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkinesisstreamslambdaSqsDlqQueue5971C9BA","Arn"]}}],"Version":"2012-10-17"},"policyName":"testkinesisstreamslambdaLambdaFunctionServiceRoleDefaultPolicy4929C676","roles":[{"Ref":"testkinesisstreamslambdaLambdaFunctionServiceRoleAD98836E"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"26cf7db64552331215006953bf73e5adfb49b5bf0eb2298bfe04547b76c08b88.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testkinesisstreamslambdaLambdaFunctionServiceRoleAD98836E","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testkinesisstreamslambdaLambdaFunctioninlinePolicyAddedToExecutionRole0111F49A4","roles":[{"Ref":"testkinesisstreamslambdaLambdaFunctionServiceRoleAD98836E"}]}}}}},"KinesisEventSource:kinlamnoargumentstestkinesisstreamslambdaKinesisStreamB15C5952":{"id":"KinesisEventSource:kinlamnoargumentstestkinesisstreamslambdaKinesisStreamB15C5952","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/KinesisEventSource:kinlamnoargumentstestkinesisstreamslambdaKinesisStreamB15C5952","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","eventSourceArn":"*","startingPositionTimestamp":"*","metricsConfig":"*","supportS3OnFailureDestination":true,"batchSize":"*","bisectBatchOnError":true,"startingPosition":"TRIM_HORIZON","reportBatchItemFailures":"*","maxBatchingWindow":"*","maxRecordAge":"*","retryAttempts":"*","parallelizationFactor":"*","onFailure":"*","tumblingWindow":"*","enabled":"*","filters":"*","filterEncryption":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/LambdaFunction/KinesisEventSource:kinlamnoargumentstestkinesisstreamslambdaKinesisStreamB15C5952/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"batchSize":100,"bisectBatchOnFunctionError":true,"destinationConfig":{"onFailure":{"destination":{"Fn::GetAtt":["testkinesisstreamslambdaSqsDlqQueue5971C9BA","Arn"]}}},"eventSourceArn":{"Fn::GetAtt":["testkinesisstreamslambdaKinesisStream374D6D56","Arn"]},"functionName":{"Ref":"testkinesisstreamslambdaLambdaFunctionB9A91CA7"},"maximumRecordAgeInSeconds":86400,"maximumRetryAttempts":5,"startingPosition":"TRIM_HORIZON"}}}}}}},"SqsDlqQueue":{"id":"SqsDlqQueue","path":"kinlam-no-arguments/test-kinesisstreams-lambda/SqsDlqQueue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/SqsDlqQueue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"kinlam-no-arguments/test-kinesisstreams-lambda/SqsDlqQueue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/SqsDlqQueue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testkinesisstreamslambdaSqsDlqQueue5971C9BA","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testkinesisstreamslambdaSqsDlqQueue5971C9BA","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testkinesisstreamslambdaSqsDlqQueue5971C9BA"}]}}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"kinlam-no-arguments/test-kinesisstreams-lambda/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Integ":{"id":"Integ","path":"kinlam-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"kinlam-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"kinlam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"kinlam-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"kinlam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinlam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"kinlam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"kinlam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/README.adoc index cb8db9aa2..9c3b26334 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/README.adoc @@ -64,7 +64,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToBedrockInferenceProfile(this, 'LambdaToBedrockPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) }, @@ -90,7 +90,7 @@ lambda_bedrock.LambdaToBedrockinferenceprofile( self, 'bedrock-construct', bedrock_model_id="amazon.nova-lite-v1:0", lambda_function_props=_lambda.FunctionProps( - runtime=_lambda.Runtime.NODEJS_20_X, + runtime=_lambda.Runtime.NODEJS_22_X, code=_lambda.Code.from_asset('lambda'), handler='index.handler', ) @@ -111,7 +111,7 @@ import software.amazon.awsconstructs.services.lambdabedrockinferenceprofile.*; new LambdaToBedrockinferenceprofile(this, "ApiGatewayToLambdaPattern", new LambdaToBedrockinferenceprofileProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f/index.js new file mode 100644 index 000000000..bf2ccd86b --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from Project Vesper! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/cdk.out index 188478b55..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"41.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/integ.json index a0d701624..254faccbb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "41.0.0", + "version": "48.0.0", "testCases": { "lambed-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lambednoargumentsIntegDefaultTestDeployAssertF60E7E69" } }, - "minimumCliVersion": "2.1005.0" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambed-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambed-no-arguments.assets.json index bfc7408f9..31f62072b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambed-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambed-no-arguments.assets.json @@ -1,5 +1,5 @@ { - "version": "41.0.0", + "version": "48.0.0", "files": { "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { "displayName": "test-lambda-inferenceprops/LambdaFunction/Code", @@ -8,23 +8,23 @@ "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-86d36d19": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "f4113aaf947712f1446294101278684d9eaea5a9324306263ef1d6d51e352883": { + "74dda44bf389d08b0113c351048610430a83335514dd01d697c385c96978b556": { "displayName": "lambed-no-arguments Template", "source": { "path": "lambed-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-dc790df5": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f4113aaf947712f1446294101278684d9eaea5a9324306263ef1d6d51e352883.json", + "objectKey": "74dda44bf389d08b0113c351048610430a83335514dd01d697c385c96978b556.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambed-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambed-no-arguments.template.json index 73a220dbb..979612c6e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambed-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambed-no-arguments.template.json @@ -91,7 +91,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "Timeout": 30, "TracingConfig": { "Mode": "Active" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambednoargumentsIntegDefaultTestDeployAssertF60E7E69.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambednoargumentsIntegDefaultTestDeployAssertF60E7E69.assets.json index ffac67710..a282016d6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambednoargumentsIntegDefaultTestDeployAssertF60E7E69.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/lambednoargumentsIntegDefaultTestDeployAssertF60E7E69.assets.json @@ -1,5 +1,5 @@ { - "version": "41.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lambednoargumentsIntegDefaultTestDeployAssertF60E7E69 Template", @@ -8,7 +8,7 @@ "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/manifest.json index 50b1b1649..ee56e2a79 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "43.0.0", + "version": "48.0.0", "artifacts": { "lambednoargumentsIntegDefaultTestDeployAssertF60E7E69.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f4113aaf947712f1446294101278684d9eaea5a9324306263ef1d6d51e352883.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/74dda44bf389d08b0113c351048610430a83335514dd01d697c385c96978b556.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -359,7 +359,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "3.0.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/tree.json index 205c84c66..5e13f9fbe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lambed-no-arguments":{"id":"lambed-no-arguments","path":"lambed-no-arguments","children":{"test-lambda-inferenceprops":{"id":"test-lambda-inferenceprops","path":"lambed-no-arguments/test-lambda-inferenceprops","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.187.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.187.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction","children":{"Code":{"id":"Code","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.187.0"}},"AssetBucket":{"id":"AssetBucket","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.187.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.187.0"}},"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","BEDROCK_MODEL":"amazon.nova-lite-v1:0","BEDROCK_PROFILE":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdainferencepropsLambdaFunctionServiceRole102487FD","Arn"]},"runtime":"nodejs20.x","timeout":30,"tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.187.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole09A675D51","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.187.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1","children":{"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole1121B30C3","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.187.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2","children":{"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::Split":[",",{"Fn::FindInMap":["testlambdainferencepropsarearegionmapping",{"Fn::Select":[0,{"Fn::Split":["-",{"Ref":"AWS::Region"}]}]},"regionalModels"]}]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole2DBB277C5","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.187.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.187.0","metadata":[{"role":"*","tracing":"Active","timeout":"*","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]}},"test-lambda-inferenceprops-area-prefix-mapping":{"id":"test-lambda-inferenceprops-area-prefix-mapping","path":"lambed-no-arguments/test-lambda-inferenceprops/test-lambda-inferenceprops-area-prefix-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.187.0"}},"test-lambda-inferenceprops-inference":{"id":"test-lambda-inferenceprops-inference","path":"lambed-no-arguments/test-lambda-inferenceprops/test-lambda-inferenceprops-inference","attributes":{"aws:cdk:cloudformation:type":"AWS::Bedrock::ApplicationInferenceProfile","aws:cdk:cloudformation:props":{"inferenceProfileName":{"Fn::Join":["",["test-lambda-inferenceprops-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"modelSource":{"copyFrom":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":bedrock:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":inference-profile/",{"Fn::FindInMap":["testlambdainferencepropsareaprefixmapping",{"Fn::Select":[0,{"Fn::Split":["-",{"Ref":"AWS::Region"}]}]},"prefix"]},".amazon.nova-lite-v1:0"]]}}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_bedrock.CfnApplicationInferenceProfile","version":"2.187.0"}},"test-lambda-inferenceprops-area-region-mapping":{"id":"test-lambda-inferenceprops-area-region-mapping","path":"lambed-no-arguments/test-lambda-inferenceprops/test-lambda-inferenceprops-area-region-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.187.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile.LambdaToBedrockinferenceprofile","version":"2.83.0"}},"Integ":{"id":"Integ","path":"lambed-no-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lambed-no-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lambed-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lambed-no-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.187.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.187.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.187.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.187.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.187.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.187.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.187.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lambed-no-arguments":{"id":"lambed-no-arguments","path":"lambed-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-inferenceprops":{"id":"test-lambda-inferenceprops","path":"lambed-no-arguments/test-lambda-inferenceprops","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile.LambdaToBedrockinferenceprofile","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","timeout":"*","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","BEDROCK_MODEL":"amazon.nova-lite-v1:0","BEDROCK_PROFILE":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdainferencepropsLambdaFunctionServiceRole102487FD","Arn"]},"runtime":"nodejs22.x","timeout":30,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole09A675D51","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole1121B30C3","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-no-arguments/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::Split":[",",{"Fn::FindInMap":["testlambdainferencepropsarearegionmapping",{"Fn::Select":[0,{"Fn::Split":["-",{"Ref":"AWS::Region"}]}]},"regionalModels"]}]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole2DBB277C5","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}}}},"test-lambda-inferenceprops-area-prefix-mapping":{"id":"test-lambda-inferenceprops-area-prefix-mapping","path":"lambed-no-arguments/test-lambda-inferenceprops/test-lambda-inferenceprops-area-prefix-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.223.0"}},"test-lambda-inferenceprops-inference":{"id":"test-lambda-inferenceprops-inference","path":"lambed-no-arguments/test-lambda-inferenceprops/test-lambda-inferenceprops-inference","constructInfo":{"fqn":"aws-cdk-lib.aws_bedrock.CfnApplicationInferenceProfile","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Bedrock::ApplicationInferenceProfile","aws:cdk:cloudformation:props":{"inferenceProfileName":{"Fn::Join":["",["test-lambda-inferenceprops-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"modelSource":{"copyFrom":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":bedrock:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":inference-profile/",{"Fn::FindInMap":["testlambdainferencepropsareaprefixmapping",{"Fn::Select":[0,{"Fn::Split":["-",{"Ref":"AWS::Region"}]}]},"prefix"]},".amazon.nova-lite-v1:0"]]}}}}},"test-lambda-inferenceprops-area-region-mapping":{"id":"test-lambda-inferenceprops-area-region-mapping","path":"lambed-no-arguments/test-lambda-inferenceprops/test-lambda-inferenceprops-area-region-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lambed-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lambed-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lambed-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lambed-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/integ.json index 784467a51..3af73f8c0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/integ.json @@ -9,5 +9,5 @@ "assertionStackName": "lambedsingleregionIntegDefaultTestDeployAssertBF812D85" } }, - "minimumCliVersion": "2.1024.0" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/lambed-single-region.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/lambed-single-region.assets.json index 194e17c59..7e6681ad9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/lambed-single-region.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/lambed-single-region.assets.json @@ -15,16 +15,16 @@ } } }, - "7c854a810755d0dcf01a1d45e130b0beeaf2789e67c53a55e8cf1573ac43e530": { + "5ad88ef2e4dea7d98f43402af231152fd0d22db0dbd1ff9da410873f83ebf09e": { "displayName": "lambed-single-region Template", "source": { "path": "lambed-single-region.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-bc8d2154": { + "current_account-current_region-dac3d3fe": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7c854a810755d0dcf01a1d45e130b0beeaf2789e67c53a55e8cf1573ac43e530.json", + "objectKey": "5ad88ef2e4dea7d98f43402af231152fd0d22db0dbd1ff9da410873f83ebf09e.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/lambed-single-region.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/lambed-single-region.template.json index ff0927dea..82679ff0b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/lambed-single-region.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/lambed-single-region.template.json @@ -91,7 +91,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "Timeout": 30, "TracingConfig": { "Mode": "Active" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/manifest.json index a1eeb76ee..b36b7d2bc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7c854a810755d0dcf01a1d45e130b0beeaf2789e67c53a55e8cf1573ac43e530.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5ad88ef2e4dea7d98f43402af231152fd0d22db0dbd1ff9da410873f83ebf09e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -330,10 +330,7 @@ "/lambed-single-region/test-lambda-inferenceprops/test-lambda-inferenceprops-inference": [ { "type": "aws:cdk:logicalId", - "data": "testlambdainferencepropstestlambdainferencepropsinference01BBD7E6", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_REPLACE" - ] + "data": "testlambdainferencepropstestlambdainferencepropsinference01BBD7E6" } ], "/lambed-single-region/test-lambda-inferenceprops/test-lambda-inferenceprops-area-region-mapping": [ @@ -372,19 +369,9 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name", - "unconfiguredBehavesLike": { - "v2": true - } - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences", - "unconfiguredBehavesLike": { - "v2": true - } + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, @@ -400,40 +387,9 @@ "v2": true } }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default", - "unconfiguredBehavesLike": { - "v2": true - } - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs", - "unconfiguredBehavesLike": { - "v2": true - } - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Tighten default KMS key policies", - "unconfiguredBehavesLike": { - "v2": true - } - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite", - "unconfiguredBehavesLike": { - "v2": true - } - }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { - "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services", - "unconfiguredBehavesLike": { - "v2": true - } + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, @@ -449,13 +405,6 @@ "v2": true } }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default.", - "unconfiguredBehavesLike": { - "v2": true - } - }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", @@ -550,7 +499,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -852,10 +801,7 @@ }, "@aws-cdk/cognito:logUserPoolClientSecretValue": { "recommendedValue": false, - "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs.", - "unconfiguredBehavesLike": { - "v2": false - } + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, @@ -881,10 +827,7 @@ }, "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { "recommendedValue": false, - "explanation": "When enabled, use resource IDs for VPC V2 migration", - "unconfiguredBehavesLike": { - "v2": false - } + "explanation": "When enabled, use resource IDs for VPC V2 migration" }, "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { "userValue": true, @@ -894,10 +837,22 @@ "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { "userValue": true, "recommendedValue": true, - "explanation": "When enabled, CDK creates and manages loggroup for the lambda function", + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", "unconfiguredBehavesLike": { - "v2": false + "v2": true } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/tree.json index a5a8eac2e..0e49197d5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-single-region.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.210.0"},"children":{"lambed-single-region":{"id":"lambed-single-region","path":"lambed-single-region","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.210.0"},"children":{"test-lambda-inferenceprops":{"id":"test-lambda-inferenceprops","path":"lambed-single-region/test-lambda-inferenceprops","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile.LambdaToBedrockinferenceprofile","version":"2.90.4"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.210.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.210.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.210.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.210.0","metadata":[{"role":"*","tracing":"Active","timeout":"*","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.210.0"},"children":{"Stage":{"id":"Stage","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.210.0"}},"AssetBucket":{"id":"AssetBucket","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.210.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.210.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","BEDROCK_MODEL":"amazon.nova-lite-v1:0","BEDROCK_PROFILE":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdainferencepropsLambdaFunctionServiceRole102487FD","Arn"]},"runtime":"nodejs20.x","timeout":30,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.210.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.210.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole09A675D51","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.210.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.210.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole1121B30C3","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.210.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.210.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":bedrock:",{"Ref":"AWS::Region"},"::foundation-model/amazon.nova-lite-v1:0"]]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole2DBB277C5","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}}}},"test-lambda-inferenceprops-area-prefix-mapping":{"id":"test-lambda-inferenceprops-area-prefix-mapping","path":"lambed-single-region/test-lambda-inferenceprops/test-lambda-inferenceprops-area-prefix-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.210.0"}},"test-lambda-inferenceprops-inference":{"id":"test-lambda-inferenceprops-inference","path":"lambed-single-region/test-lambda-inferenceprops/test-lambda-inferenceprops-inference","constructInfo":{"fqn":"aws-cdk-lib.aws_bedrock.CfnApplicationInferenceProfile","version":"2.210.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Bedrock::ApplicationInferenceProfile","aws:cdk:cloudformation:props":{"inferenceProfileName":{"Fn::Join":["",["test-lambda-inferenceprops-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"modelSource":{"copyFrom":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":bedrock:",{"Ref":"AWS::Region"},"::foundation-model/amazon.nova-lite-v1:0"]]}}}}},"test-lambda-inferenceprops-area-region-mapping":{"id":"test-lambda-inferenceprops-area-region-mapping","path":"lambed-single-region/test-lambda-inferenceprops/test-lambda-inferenceprops-area-region-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.210.0"}}}},"Integ":{"id":"Integ","path":"lambed-single-region/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.210.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lambed-single-region/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.210.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lambed-single-region/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lambed-single-region/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.210.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-single-region/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.210.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-single-region/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.210.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-single-region/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.210.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-single-region/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.210.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lambed-single-region":{"id":"lambed-single-region","path":"lambed-single-region","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-inferenceprops":{"id":"test-lambda-inferenceprops","path":"lambed-single-region/test-lambda-inferenceprops","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile.LambdaToBedrockinferenceprofile","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","timeout":"*","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","BEDROCK_MODEL":"amazon.nova-lite-v1:0","BEDROCK_PROFILE":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdainferencepropsLambdaFunctionServiceRole102487FD","Arn"]},"runtime":"nodejs22.x","timeout":30,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole09A675D51","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole1121B30C3","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-single-region/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":bedrock:",{"Ref":"AWS::Region"},"::foundation-model/amazon.nova-lite-v1:0"]]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole2DBB277C5","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}}}},"test-lambda-inferenceprops-area-prefix-mapping":{"id":"test-lambda-inferenceprops-area-prefix-mapping","path":"lambed-single-region/test-lambda-inferenceprops/test-lambda-inferenceprops-area-prefix-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.223.0"}},"test-lambda-inferenceprops-inference":{"id":"test-lambda-inferenceprops-inference","path":"lambed-single-region/test-lambda-inferenceprops/test-lambda-inferenceprops-inference","constructInfo":{"fqn":"aws-cdk-lib.aws_bedrock.CfnApplicationInferenceProfile","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Bedrock::ApplicationInferenceProfile","aws:cdk:cloudformation:props":{"inferenceProfileName":{"Fn::Join":["",["test-lambda-inferenceprops-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"modelSource":{"copyFrom":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":bedrock:",{"Ref":"AWS::Region"},"::foundation-model/amazon.nova-lite-v1:0"]]}}}}},"test-lambda-inferenceprops-area-region-mapping":{"id":"test-lambda-inferenceprops-area-region-mapping","path":"lambed-single-region/test-lambda-inferenceprops/test-lambda-inferenceprops-area-region-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lambed-single-region/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lambed-single-region/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lambed-single-region/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lambed-single-region/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-single-region/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-single-region/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-single-region/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-single-region/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/lambed-with-vpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/lambed-with-vpc.assets.json index b23f0b442..2fd02b1d0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/lambed-with-vpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/lambed-with-vpc.assets.json @@ -29,16 +29,16 @@ } } }, - "07fdd268254e7daf7f5f804b496143b879878fedfd2de622f3b58821565d03fd": { + "63a765040f4a2c589a1a870dc54708b60fafedfd220bc17b90e7a240d318b83d": { "displayName": "lambed-with-vpc Template", "source": { "path": "lambed-with-vpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-a9e3404c": { + "current_account-current_region-c16eaf99": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "07fdd268254e7daf7f5f804b496143b879878fedfd2de622f3b58821565d03fd.json", + "objectKey": "63a765040f4a2c589a1a870dc54708b60fafedfd220bc17b90e7a240d318b83d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/lambed-with-vpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/lambed-with-vpc.template.json index 8aa7db353..a1b355483 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/lambed-with-vpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/lambed-with-vpc.template.json @@ -158,7 +158,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "Timeout": 30, "TracingConfig": { "Mode": "Active" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/manifest.json index 13724113b..b5c4fe9dc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/07fdd268254e7daf7f5f804b496143b879878fedfd2de622f3b58821565d03fd.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/63a765040f4a2c589a1a870dc54708b60fafedfd220bc17b90e7a240d318b83d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/tree.json index 110c6468a..5b8d3ffb4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/integ.lambed-with-vpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lambed-with-vpc":{"id":"lambed-with-vpc","path":"lambed-with-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-inferenceprops":{"id":"test-lambda-inferenceprops","path":"lambed-with-vpc/test-lambda-inferenceprops","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile.LambdaToBedrockinferenceprofile","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctionServiceRoleDefaultPolicyB1E40609","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lambed-with-vpc/test-lambda-inferenceprops/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lambed-with-vpc/test-lambda-inferenceprops/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","timeout":"*","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","BEDROCK_MODEL":"amazon.nova-lite-v1:0","BEDROCK_PROFILE":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdainferencepropsLambdaFunctionServiceRole102487FD","Arn"]},"runtime":"nodejs20.x","timeout":30,"tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdainferencepropsReplaceDefaultSecurityGroupsecuritygroup143ABA1F","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole09A675D51","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole1121B30C3","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::Split":[",",{"Fn::FindInMap":["testlambdainferencepropsarearegionmapping",{"Fn::Select":[0,{"Fn::Split":["-",{"Ref":"AWS::Region"}]}]},"regionalModels"]}]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole2DBB277C5","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}}}},"test-lambda-inferenceprops-area-prefix-mapping":{"id":"test-lambda-inferenceprops-area-prefix-mapping","path":"lambed-with-vpc/test-lambda-inferenceprops/test-lambda-inferenceprops-area-prefix-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.223.0"}},"test-lambda-inferenceprops-inference":{"id":"test-lambda-inferenceprops-inference","path":"lambed-with-vpc/test-lambda-inferenceprops/test-lambda-inferenceprops-inference","constructInfo":{"fqn":"aws-cdk-lib.aws_bedrock.CfnApplicationInferenceProfile","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Bedrock::ApplicationInferenceProfile","aws:cdk:cloudformation:props":{"inferenceProfileName":{"Fn::Join":["",["test-lambda-inferenceprops-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"modelSource":{"copyFrom":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":bedrock:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":inference-profile/",{"Fn::FindInMap":["testlambdainferencepropsareaprefixmapping",{"Fn::Select":[0,{"Fn::Split":["-",{"Ref":"AWS::Region"}]}]},"prefix"]},".amazon.nova-lite-v1:0"]]}}}}},"test-lambda-inferenceprops-area-region-mapping":{"id":"test-lambda-inferenceprops-area-region-mapping","path":"lambed-with-vpc/test-lambda-inferenceprops/test-lambda-inferenceprops-area-region-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.223.0"}}}},"Vpc":{"id":"Vpc","path":"lambed-with-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lambed-with-vpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lambed-with-vpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lambed-with-vpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lambed-with-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lambed-with-vpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lambed-with-vpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lambed-with-vpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lambed-with-vpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lambed-with-vpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lambed-with-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lambed-with-vpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lambed-with-vpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lambed-with-vpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lambed-with-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lambed-with-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lambed-with-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lambed-with-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lambed-with-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"BEDROCK":{"id":"BEDROCK","path":"lambed-with-vpc/Vpc/BEDROCK","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/BEDROCK/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lambedwithvpcBEDROCKsecuritygroupFFB2A8D0","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".bedrock"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"BEDROCK_RUNTIME":{"id":"BEDROCK_RUNTIME","path":"lambed-with-vpc/Vpc/BEDROCK_RUNTIME","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/BEDROCK_RUNTIME/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lambedwithvpcBEDROCKRUNTIMEsecuritygroup807842C2","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".bedrock-runtime"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lambed-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lambed-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lambed-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lambed-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lambed-with-vpc-BEDROCK-security-group":{"id":"lambed-with-vpc-BEDROCK-security-group","path":"lambed-with-vpc/lambed-with-vpc-BEDROCK-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/lambed-with-vpc-BEDROCK-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lambed-with-vpc/lambed-with-vpc-BEDROCK-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lambed-with-vpc-BEDROCK_RUNTIME-security-group":{"id":"lambed-with-vpc-BEDROCK_RUNTIME-security-group","path":"lambed-with-vpc/lambed-with-vpc-BEDROCK_RUNTIME-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/lambed-with-vpc-BEDROCK_RUNTIME-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lambed-with-vpc/lambed-with-vpc-BEDROCK_RUNTIME-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lambed-with-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lambed-with-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lambed-with-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lambed-with-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-with-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-with-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-with-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-with-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lambed-with-vpc":{"id":"lambed-with-vpc","path":"lambed-with-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-inferenceprops":{"id":"test-lambda-inferenceprops","path":"lambed-with-vpc/test-lambda-inferenceprops","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile.LambdaToBedrockinferenceprofile","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctionServiceRoleDefaultPolicyB1E40609","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lambed-with-vpc/test-lambda-inferenceprops/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lambed-with-vpc/test-lambda-inferenceprops/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","timeout":"*","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","BEDROCK_MODEL":"amazon.nova-lite-v1:0","BEDROCK_PROFILE":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdainferencepropsLambdaFunctionServiceRole102487FD","Arn"]},"runtime":"nodejs22.x","timeout":30,"tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdainferencepropsReplaceDefaultSecurityGroupsecuritygroup143ABA1F","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole09A675D51","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdainferencepropstestlambdainferencepropsinference01BBD7E6","InferenceProfileArn"]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole1121B30C3","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/test-lambda-inferenceprops/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"bedrock:Invoke*","Effect":"Allow","Resource":{"Fn::Split":[",",{"Fn::FindInMap":["testlambdainferencepropsarearegionmapping",{"Fn::Select":[0,{"Fn::Split":["-",{"Ref":"AWS::Region"}]}]},"regionalModels"]}]}}],"Version":"2012-10-17"},"policyName":"testlambdainferencepropsLambdaFunctioninlinePolicyAddedToExecutionRole2DBB277C5","roles":[{"Ref":"testlambdainferencepropsLambdaFunctionServiceRole102487FD"}]}}}}}}},"test-lambda-inferenceprops-area-prefix-mapping":{"id":"test-lambda-inferenceprops-area-prefix-mapping","path":"lambed-with-vpc/test-lambda-inferenceprops/test-lambda-inferenceprops-area-prefix-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.223.0"}},"test-lambda-inferenceprops-inference":{"id":"test-lambda-inferenceprops-inference","path":"lambed-with-vpc/test-lambda-inferenceprops/test-lambda-inferenceprops-inference","constructInfo":{"fqn":"aws-cdk-lib.aws_bedrock.CfnApplicationInferenceProfile","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Bedrock::ApplicationInferenceProfile","aws:cdk:cloudformation:props":{"inferenceProfileName":{"Fn::Join":["",["test-lambda-inferenceprops-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"modelSource":{"copyFrom":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":bedrock:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":inference-profile/",{"Fn::FindInMap":["testlambdainferencepropsareaprefixmapping",{"Fn::Select":[0,{"Fn::Split":["-",{"Ref":"AWS::Region"}]}]},"prefix"]},".amazon.nova-lite-v1:0"]]}}}}},"test-lambda-inferenceprops-area-region-mapping":{"id":"test-lambda-inferenceprops-area-region-mapping","path":"lambed-with-vpc/test-lambda-inferenceprops/test-lambda-inferenceprops-area-region-mapping","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.223.0"}}}},"Vpc":{"id":"Vpc","path":"lambed-with-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lambed-with-vpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lambed-with-vpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lambed-with-vpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lambed-with-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lambed-with-vpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lambed-with-vpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lambed-with-vpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lambed-with-vpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lambed-with-vpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lambed-with-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lambed-with-vpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lambed-with-vpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lambed-with-vpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lambed-with-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lambed-with-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lambed-with-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lambed-with-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lambed-with-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lambed-with-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"BEDROCK":{"id":"BEDROCK","path":"lambed-with-vpc/Vpc/BEDROCK","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/BEDROCK/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lambedwithvpcBEDROCKsecuritygroupFFB2A8D0","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".bedrock"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"BEDROCK_RUNTIME":{"id":"BEDROCK_RUNTIME","path":"lambed-with-vpc/Vpc/BEDROCK_RUNTIME","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/Vpc/BEDROCK_RUNTIME/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lambed-with-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lambedwithvpcBEDROCKRUNTIMEsecuritygroup807842C2","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".bedrock-runtime"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lambed-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lambed-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lambed-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lambed-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lambed-with-vpc-BEDROCK-security-group":{"id":"lambed-with-vpc-BEDROCK-security-group","path":"lambed-with-vpc/lambed-with-vpc-BEDROCK-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/lambed-with-vpc-BEDROCK-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lambed-with-vpc/lambed-with-vpc-BEDROCK-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lambed-with-vpc-BEDROCK_RUNTIME-security-group":{"id":"lambed-with-vpc-BEDROCK_RUNTIME-security-group","path":"lambed-with-vpc/lambed-with-vpc-BEDROCK_RUNTIME-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lambed-with-vpc/lambed-with-vpc-BEDROCK_RUNTIME-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lambed-with-vpc/lambed-with-vpc-BEDROCK_RUNTIME-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lambed-with-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lambed-with-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lambed-with-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lambed-with-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-with-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-with-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lambed-with-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lambed-with-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/lambda-bedrockinferenceprofile.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/lambda-bedrockinferenceprofile.test.ts index d80802d43..13725cdb4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/lambda-bedrockinferenceprofile.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-bedrockinferenceprofile/test/lambda-bedrockinferenceprofile.test.ts @@ -55,7 +55,7 @@ test('Test cross region deployment with new Lambda function', () => { "Arn" ] }, - Runtime: "nodejs20.x", + Runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_STRING, Timeout: 30, TracingConfig: { Mode: "Active" @@ -172,7 +172,7 @@ test('Test single region deployment with new Lambda function', () => { "Arn" ] }, - Runtime: "nodejs20.x", + Runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_STRING, Timeout: 30, TracingConfig: { Mode: "Active" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.adoc index bf41fc6f2..6943afc33 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.adoc @@ -50,7 +50,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, }; @@ -92,7 +92,7 @@ import software.amazon.awsconstructs.services.lambdadynamodb.*; new LambdaToDynamoDB(this, "test_lambda_dynamodb_stack", new LambdaToDynamoDBProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -206,6 +206,10 @@ Key image::aws-lambda-dynamodb.png["Diagram showing the Lambda function, CloudWatch log group, DynamoDB table and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call DynamoDB, here is a DynamoDB example for CreateTableCommand, PutCommand, GetCommand, DeleteCommand, UpdateCommand, and more: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/dynamodb/scenarios/basic.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/integ.json index 1dfaca3cd..06880aeef 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamddb-add-secondary-index/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamddb-add-secondary-index/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamddbaddsecondaryindexIntegDefaultTestDeployAssert3193B4D9" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.assets.json index 1d2753477..b980333a1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "test-lambda-dynamodb-stack/LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "2ae1e9c15e8530584a4b66ad99c226b973585c6bcd012bb98874ce3aabfcecff": { + "2342bbe7bfb1d8a7b3f50e45c45790456ce0b3230c68bcc15228e6f64a9c913e": { + "displayName": "lamddb-add-secondary-index Template", "source": { "path": "lamddb-add-secondary-index.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-53540e5c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "2ae1e9c15e8530584a4b66ad99c226b973585c6bcd012bb98874ce3aabfcecff.json", + "objectKey": "2342bbe7bfb1d8a7b3f50e45c45790456ce0b3230c68bcc15228e6f64a9c913e.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.template.json index f5fd36aef..41b08c2a0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.template.json @@ -141,7 +141,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddbaddsecondaryindexIntegDefaultTestDeployAssert3193B4D9.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddbaddsecondaryindexIntegDefaultTestDeployAssert3193B4D9.assets.json index 1372e6244..cb15dd39a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddbaddsecondaryindexIntegDefaultTestDeployAssert3193B4D9.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddbaddsecondaryindexIntegDefaultTestDeployAssert3193B4D9.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamddbaddsecondaryindexIntegDefaultTestDeployAssert3193B4D9 Template", "source": { "path": "lamddbaddsecondaryindexIntegDefaultTestDeployAssert3193B4D9.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/manifest.json index 22eb99c09..8e75c33be 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamddbaddsecondaryindexIntegDefaultTestDeployAssert3193B4D9.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2ae1e9c15e8530584a4b66ad99c226b973585c6bcd012bb98874ce3aabfcecff.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2342bbe7bfb1d8a7b3f50e45c45790456ce0b3230c68bcc15228e6f64a9c913e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -265,10 +265,12 @@ "data": { "billingMode": "PAY_PER_REQUEST", "encryption": "AWS_MANAGED", - "pointInTimeRecovery": true, "partitionKey": { "name": "*", "type": "S" + }, + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true } } }, @@ -319,7 +321,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/tree.json index 6f3d1d10e..ead0da47c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamddb-add-secondary-index":{"id":"lamddb-add-secondary-index","path":"lamddb-add-secondary-index","children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},"/index/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction","children":{"Code":{"id":"Code","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/DynamoTable","children":{"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/DynamoTable/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"},{"attributeName":"id2","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","globalSecondaryIndexes":[{"indexName":"test_id2","keySchema":[{"attributeName":"id2","keyType":"HASH"}],"projection":{"projectionType":"ALL"}}],"keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.186.0"}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.186.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":true,"partitionKey":{"name":"*","type":"S"}},{"addGlobalSecondaryIndex":[{"partitionKey":{"name":"*","type":"S"},"indexName":"*"}]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamddb-add-secondary-index/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-add-secondary-index/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamddb-add-secondary-index/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-add-secondary-index/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-add-secondary-index/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-add-secondary-index/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-add-secondary-index/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-add-secondary-index/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamddb-add-secondary-index":{"id":"lamddb-add-secondary-index","path":"lamddb-add-secondary-index","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},"/index/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}},{"addGlobalSecondaryIndex":[{"partitionKey":{"name":"*","type":"S"},"indexName":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"},{"attributeName":"id2","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","globalSecondaryIndexes":[{"indexName":"test_id2","keySchema":[{"attributeName":"id2","keyType":"HASH"}],"projection":{"projectionType":"ALL"}}],"keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-add-secondary-index/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Integ":{"id":"Integ","path":"lamddb-add-secondary-index/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-add-secondary-index/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamddb-add-secondary-index/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-add-secondary-index/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-add-secondary-index/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-add-secondary-index/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-add-secondary-index/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-add-secondary-index/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.assets.json index 53b3a5823..f736f16d3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "2b88b7b554fc3162b972aee85053cfb3b8d0a5b040b7f647c221ee51056a30eb": { + "c2861208769b0dfad8e1b6904132ff2ddf7884ff602dd7f0f30530c66a0f3c10": { "displayName": "lamddb-deployFunctionWithExistingVpc Template", "source": { "path": "lamddb-deployFunctionWithExistingVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-fa394a06": { + "current_account-current_region-14e8abb7": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "2b88b7b554fc3162b972aee85053cfb3b8d0a5b040b7f647c221ee51056a30eb.json", + "objectKey": "c2861208769b0dfad8e1b6904132ff2ddf7884ff602dd7f0f30530c66a0f3c10.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.template.json index 9515e3dd5..10ec09574 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.template.json @@ -876,7 +876,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/manifest.json index e66554f67..1c47e7a40 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2b88b7b554fc3162b972aee85053cfb3b8d0a5b040b7f647c221ee51056a30eb.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c2861208769b0dfad8e1b6904132ff2ddf7884ff602dd7f0f30530c66a0f3c10.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/tree.json index 27f32d7f1..d002895e8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamddb-deployFunctionWithExistingVpc":{"id":"lamddb-deployFunctionWithExistingVpc","path":"lamddb-deployFunctionWithExistingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamddb-deployFunctionWithExistingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamddb-deployFunctionWithExistingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamddb-deployFunctionWithExistingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamddb-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"DDB":{"id":"DDB","path":"lamddb-deployFunctionWithExistingVpc/Vpc/DDB","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/DDB/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".dynamodb"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamddb-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamddb-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamddb-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamddb-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdadynamodbstackReplaceDefaultSecurityGroupsecuritygroup15025C82","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Integ":{"id":"Integ","path":"lamddb-deployFunctionWithExistingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-deployFunctionWithExistingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-deployFunctionWithExistingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamddb-deployFunctionWithExistingVpc":{"id":"lamddb-deployFunctionWithExistingVpc","path":"lamddb-deployFunctionWithExistingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamddb-deployFunctionWithExistingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamddb-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamddb-deployFunctionWithExistingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamddb-deployFunctionWithExistingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamddb-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"DDB":{"id":"DDB","path":"lamddb-deployFunctionWithExistingVpc/Vpc/DDB","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/Vpc/DDB/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithExistingVpc/Vpc"}],"routeTableIds":[{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".dynamodb"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamddb-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamddb-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamddb-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamddb-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdadynamodbstackReplaceDefaultSecurityGroupsecuritygroup15025C82","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-deployFunctionWithExistingVpc/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Integ":{"id":"Integ","path":"lamddb-deployFunctionWithExistingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-deployFunctionWithExistingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-deployFunctionWithExistingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.assets.json index b97d0fae3..067e9511e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "a4fc67a2ed3b51876ae9ed65985f22cfb67a251332f936251fc60fee03bccae9": { + "1a083632e2b69022e11247f8c4569c625f32eeb381d5572966c5120ee681b3f0": { "displayName": "lamddb-deployFunctionWithVpc Template", "source": { "path": "lamddb-deployFunctionWithVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-defa9cea": { + "current_account-current_region-d0a7ef2b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a4fc67a2ed3b51876ae9ed65985f22cfb67a251332f936251fc60fee03bccae9.json", + "objectKey": "1a083632e2b69022e11247f8c4569c625f32eeb381d5572966c5120ee681b3f0.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.template.json index 69d67fe0e..2de8e9081 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.template.json @@ -182,7 +182,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/manifest.json index a6be5a7c2..ddaea581b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a4fc67a2ed3b51876ae9ed65985f22cfb67a251332f936251fc60fee03bccae9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/1a083632e2b69022e11247f8c4569c625f32eeb381d5572966c5120ee681b3f0.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/tree.json index 7ba49d52c..a24a0d442 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamddb-deployFunctionWithVpc":{"id":"lamddb-deployFunctionWithVpc","path":"lamddb-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdadynamodbstackReplaceDefaultSecurityGroupsecuritygroup15025C82","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Vpc":{"id":"Vpc","path":"lamddb-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamddb-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamddb-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"DDB":{"id":"DDB","path":"lamddb-deployFunctionWithVpc/Vpc/DDB","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/DDB/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc"}],"routeTableIds":[{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},{"Ref":"VpcisolatedSubnet2RouteTable334F9764"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".dynamodb"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamddb-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamddb-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamddb-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamddb-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamddb-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamddb-deployFunctionWithVpc":{"id":"lamddb-deployFunctionWithVpc","path":"lamddb-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdadynamodbstackReplaceDefaultSecurityGroupsecuritygroup15025C82","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-deployFunctionWithVpc/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Vpc":{"id":"Vpc","path":"lamddb-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamddb-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamddb-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamddb-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamddb-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"DDB":{"id":"DDB","path":"lamddb-deployFunctionWithVpc/Vpc/DDB","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-deployFunctionWithVpc/Vpc/DDB/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamddb-deployFunctionWithVpc/Vpc"}],"routeTableIds":[{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},{"Ref":"VpcisolatedSubnet2RouteTable334F9764"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".dynamodb"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamddb-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamddb-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamddb-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamddb-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamddb-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/integ.json index e6f40ef05..80358b01b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamddb-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamddb-no-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamddbnoargumentsIntegDefaultTestDeployAssert248B75D0" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.assets.json index 4862889bb..c9d5e71db 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "test-lambda-dynamodb-stack/LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "96675cf3c91668e3660ede019bc5b305858563102d0157dee2840d9b9679bef5": { + "de6d2fb9a1be4003c2cb2fae7fa18623b2f76a01d3a7c8026a0fc915b581430c": { + "displayName": "lamddb-no-arguments Template", "source": { "path": "lamddb-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d45fdd6b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "96675cf3c91668e3660ede019bc5b305858563102d0157dee2840d9b9679bef5.json", + "objectKey": "de6d2fb9a1be4003c2cb2fae7fa18623b2f76a01d3a7c8026a0fc915b581430c.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.template.json index 6bd454cc1..c75d73434 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.template.json @@ -130,7 +130,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddbnoargumentsIntegDefaultTestDeployAssert248B75D0.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddbnoargumentsIntegDefaultTestDeployAssert248B75D0.assets.json index adff2920d..e92a95197 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddbnoargumentsIntegDefaultTestDeployAssert248B75D0.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddbnoargumentsIntegDefaultTestDeployAssert248B75D0.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamddbnoargumentsIntegDefaultTestDeployAssert248B75D0 Template", "source": { "path": "lamddbnoargumentsIntegDefaultTestDeployAssert248B75D0.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/manifest.json index 264eec783..c7614f593 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamddbnoargumentsIntegDefaultTestDeployAssert248B75D0.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/96675cf3c91668e3660ede019bc5b305858563102d0157dee2840d9b9679bef5.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/de6d2fb9a1be4003c2cb2fae7fa18623b2f76a01d3a7c8026a0fc915b581430c.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -265,10 +265,12 @@ "data": { "billingMode": "PAY_PER_REQUEST", "encryption": "AWS_MANAGED", - "pointInTimeRecovery": true, "partitionKey": { "name": "*", "type": "S" + }, + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true } } } @@ -305,7 +307,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/tree.json index 78f93ca32..54c8b14e6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamddb-no-arguments":{"id":"lamddb-no-arguments","path":"lamddb-no-arguments","children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-no-arguments/test-lambda-dynamodb-stack","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction","children":{"Code":{"id":"Code","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/DynamoTable","children":{"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/DynamoTable/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.186.0"}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.186.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":true,"partitionKey":{"name":"*","type":"S"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamddb-no-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-no-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamddb-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-no-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamddb-no-arguments":{"id":"lamddb-no-arguments","path":"lamddb-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-no-arguments/test-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-no-arguments/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Integ":{"id":"Integ","path":"lamddb-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamddb-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/cdk.out index 188478b55..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"41.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/integ.json index 0192d57b2..deda03750 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "41.0.0", + "version": "48.0.0", "testCases": { "lamddb-point-in-time-recovery/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamddbpointintimerecoveryIntegDefaultTestDeployAssertB0CCD339" } }, - "minimumCliVersion": "2.1005.0" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddb-point-in-time-recovery.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddb-point-in-time-recovery.assets.json index 8fd39f74f..cf90696ba 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddb-point-in-time-recovery.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddb-point-in-time-recovery.assets.json @@ -1,5 +1,5 @@ { - "version": "41.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { "displayName": "test-lambda-dynamodb-stack/LambdaFunction/Code", @@ -8,23 +8,23 @@ "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "cdf64f9fe16dedc5e85b9ae6760d3a90e114c7b81efcfde82a7fdba7a6322281": { + "acc5960c2d9b7ad648f39320bb3bce0142f41741cca13ea9458fe6d672b285ea": { "displayName": "lamddb-point-in-time-recovery Template", "source": { "path": "lamddb-point-in-time-recovery.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-22e71b25": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "cdf64f9fe16dedc5e85b9ae6760d3a90e114c7b81efcfde82a7fdba7a6322281.json", + "objectKey": "acc5960c2d9b7ad648f39320bb3bce0142f41741cca13ea9458fe6d672b285ea.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddb-point-in-time-recovery.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddb-point-in-time-recovery.template.json index d2eed8b62..d0ef3197b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddb-point-in-time-recovery.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddb-point-in-time-recovery.template.json @@ -130,7 +130,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddbpointintimerecoveryIntegDefaultTestDeployAssertB0CCD339.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddbpointintimerecoveryIntegDefaultTestDeployAssertB0CCD339.assets.json index 14a9df97a..0232229d9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddbpointintimerecoveryIntegDefaultTestDeployAssertB0CCD339.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/lamddbpointintimerecoveryIntegDefaultTestDeployAssertB0CCD339.assets.json @@ -1,5 +1,5 @@ { - "version": "41.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamddbpointintimerecoveryIntegDefaultTestDeployAssertB0CCD339 Template", @@ -8,7 +8,7 @@ "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/manifest.json index f1098cf2d..25db0b3c7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "43.0.0", + "version": "48.0.0", "artifacts": { "lamddbpointintimerecoveryIntegDefaultTestDeployAssertB0CCD339.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/cdf64f9fe16dedc5e85b9ae6760d3a90e114c7b81efcfde82a7fdba7a6322281.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/acc5960c2d9b7ad648f39320bb3bce0142f41741cca13ea9458fe6d672b285ea.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -265,7 +265,6 @@ "data": { "billingMode": "PAY_PER_REQUEST", "encryption": "AWS_MANAGED", - "pointInTimeRecovery": "*", "partitionKey": { "name": "*", "type": "S" @@ -308,7 +307,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1007.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/tree.json index 362a675b3..31a877651 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamddb-point-in-time-recovery":{"id":"lamddb-point-in-time-recovery","path":"lamddb-point-in-time-recovery","children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.187.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.187.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.187.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.187.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction","children":{"Code":{"id":"Code","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.187.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.187.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.187.0"}},"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.187.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.187.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.187.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/DynamoTable","children":{"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/DynamoTable/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"api_key","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"api_key","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.187.0"}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.187.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.187.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":"*","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.82.0"}},"Integ":{"id":"Integ","path":"lamddb-point-in-time-recovery/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-point-in-time-recovery/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamddb-point-in-time-recovery/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-point-in-time-recovery/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-point-in-time-recovery/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.187.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-point-in-time-recovery/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.187.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.187.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.187.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-point-in-time-recovery/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.187.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-point-in-time-recovery/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.187.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.187.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.187.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamddb-point-in-time-recovery":{"id":"lamddb-point-in-time-recovery","path":"lamddb-point-in-time-recovery","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"api_key","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"api_key","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-point-in-time-recovery/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Integ":{"id":"Integ","path":"lamddb-point-in-time-recovery/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-point-in-time-recovery/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamddb-point-in-time-recovery/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-point-in-time-recovery/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-point-in-time-recovery/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-point-in-time-recovery/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-point-in-time-recovery/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-point-in-time-recovery/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/integ.json index a01976b31..11fb7156a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamddb-set-billing-mode/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamddb-set-billing-mode/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamddbsetbillingmodeIntegDefaultTestDeployAssertDAE32272" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.assets.json index c49cd0ae9..df20df3e0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "test-lambda-dynamodb-stack/LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "4523ea9c5043eeeece834e81a14df946c778c1885217c9c133588f0706b592cd": { + "2e0d675a1c6c1ff6eefaaf9ae81276463afe4f04ef6822bf7f49bf8e1dc3e0be": { + "displayName": "lamddb-set-billing-mode Template", "source": { "path": "lamddb-set-billing-mode.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-aae8713c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4523ea9c5043eeeece834e81a14df946c778c1885217c9c133588f0706b592cd.json", + "objectKey": "2e0d675a1c6c1ff6eefaaf9ae81276463afe4f04ef6822bf7f49bf8e1dc3e0be.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.template.json index 2b491fba9..aa8fc9301 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.template.json @@ -130,7 +130,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddbsetbillingmodeIntegDefaultTestDeployAssertDAE32272.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddbsetbillingmodeIntegDefaultTestDeployAssertDAE32272.assets.json index fd4a31b77..c0dcb2cbc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddbsetbillingmodeIntegDefaultTestDeployAssertDAE32272.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddbsetbillingmodeIntegDefaultTestDeployAssertDAE32272.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamddbsetbillingmodeIntegDefaultTestDeployAssertDAE32272 Template", "source": { "path": "lamddbsetbillingmodeIntegDefaultTestDeployAssertDAE32272.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/manifest.json index 7db39825a..6c96e3907 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamddbsetbillingmodeIntegDefaultTestDeployAssertDAE32272.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4523ea9c5043eeeece834e81a14df946c778c1885217c9c133588f0706b592cd.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2e0d675a1c6c1ff6eefaaf9ae81276463afe4f04ef6822bf7f49bf8e1dc3e0be.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -265,11 +265,13 @@ "data": { "billingMode": "PROVISIONED", "encryption": "AWS_MANAGED", - "pointInTimeRecovery": true, "partitionKey": { "name": "*", "type": "S" }, + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true + }, "readCapacity": "*", "writeCapacity": "*" } @@ -307,7 +309,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/tree.json index 012c1fe0f..e7a43171b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamddb-set-billing-mode":{"id":"lamddb-set-billing-mode","path":"lamddb-set-billing-mode","children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction","children":{"Code":{"id":"Code","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/DynamoTable","children":{"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/DynamoTable/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"provisionedThroughput":{"readCapacityUnits":3,"writeCapacityUnits":3},"sseSpecification":{"sseEnabled":true}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.186.0"}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.186.0","metadata":[{"billingMode":"PROVISIONED","encryption":"AWS_MANAGED","pointInTimeRecovery":true,"partitionKey":{"name":"*","type":"S"},"readCapacity":"*","writeCapacity":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamddb-set-billing-mode/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-set-billing-mode/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamddb-set-billing-mode/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-set-billing-mode/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-set-billing-mode/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-set-billing-mode/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-set-billing-mode/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-set-billing-mode/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamddb-set-billing-mode":{"id":"lamddb-set-billing-mode","path":"lamddb-set-billing-mode","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctionServiceRoleDefaultPolicy547FB7F4","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdadynamodbstackLambdaFunctionServiceRole758347A1","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdadynamodbstackLambdaFunctioninlinePolicyAddedToExecutionRole019E2DE85","roles":[{"Ref":"testlambdadynamodbstackLambdaFunctionServiceRole758347A1"}]}}}}}}},"DynamoTable":{"id":"DynamoTable","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PROVISIONED","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"readCapacity":"*","writeCapacity":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"provisionedThroughput":{"readCapacityUnits":3,"writeCapacityUnits":3},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-set-billing-mode/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Integ":{"id":"Integ","path":"lamddb-set-billing-mode/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-set-billing-mode/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamddb-set-billing-mode/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-set-billing-mode/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-set-billing-mode/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-set-billing-mode/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-set-billing-mode/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-set-billing-mode/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/integ.json index ff1da5348..c339aae1c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamddb-use-existing-func/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamddb-use-existing-func/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamddbuseexistingfuncIntegDefaultTestDeployAssert48D284DD" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.assets.json index c54b3baec..61b1d9283 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "534d74fb32bcb4ad6182b21fad4718422f839cb964c0ca21e3f1271a3bff52b6": { + "730952ec6b22395eecc4ae620f37b1d5fed373f76840039a6642be8f5b1bf223": { + "displayName": "lamddb-use-existing-func Template", "source": { "path": "lamddb-use-existing-func.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-ecd6ef52": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "534d74fb32bcb4ad6182b21fad4718422f839cb964c0ca21e3f1271a3bff52b6.json", + "objectKey": "730952ec6b22395eecc4ae620f37b1d5fed373f76840039a6642be8f5b1bf223.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.template.json index 43f03d890..1fd7117e0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.template.json @@ -130,7 +130,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddbuseexistingfuncIntegDefaultTestDeployAssert48D284DD.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddbuseexistingfuncIntegDefaultTestDeployAssert48D284DD.assets.json index 6a8bdefa6..8ecc8743b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddbuseexistingfuncIntegDefaultTestDeployAssert48D284DD.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddbuseexistingfuncIntegDefaultTestDeployAssert48D284DD.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamddbuseexistingfuncIntegDefaultTestDeployAssert48D284DD Template", "source": { "path": "lamddbuseexistingfuncIntegDefaultTestDeployAssert48D284DD.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/manifest.json index 75f238d55..98347c7c2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamddbuseexistingfuncIntegDefaultTestDeployAssert48D284DD.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/534d74fb32bcb4ad6182b21fad4718422f839cb964c0ca21e3f1271a3bff52b6.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/730952ec6b22395eecc4ae620f37b1d5fed373f76840039a6642be8f5b1bf223.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -265,10 +265,12 @@ "data": { "billingMode": "PAY_PER_REQUEST", "encryption": "AWS_MANAGED", - "pointInTimeRecovery": true, "partitionKey": { "name": "*", "type": "S" + }, + "pointInTimeRecoverySpecification": { + "pointInTimeRecoveryEnabled": true } } } @@ -305,7 +307,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/tree.json index 88319b860..08cda624f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamddb-use-existing-func":{"id":"lamddb-use-existing-func","path":"lamddb-use-existing-func","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-use-existing-func/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-use-existing-func/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-use-existing-func/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-use-existing-func/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamddb-use-existing-func/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-use-existing-func/LambdaFunction","children":{"Code":{"id":"Code","path":"lamddb-use-existing-func/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamddb-use-existing-func/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-use-existing-func/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamddb-use-existing-func/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-use-existing-func/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamddb-use-existing-func/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-use-existing-func/test-lambda-dynamodb-stack","children":{"DynamoTable":{"id":"DynamoTable","path":"lamddb-use-existing-func/test-lambda-dynamodb-stack/DynamoTable","children":{"Resource":{"id":"Resource","path":"lamddb-use-existing-func/test-lambda-dynamodb-stack/DynamoTable/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.186.0"}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-use-existing-func/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.186.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","pointInTimeRecovery":true,"partitionKey":{"name":"*","type":"S"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamddb-use-existing-func/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-use-existing-func/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamddb-use-existing-func/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-use-existing-func/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-use-existing-func/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-use-existing-func/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-use-existing-func/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-use-existing-func/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamddb-use-existing-func":{"id":"lamddb-use-existing-func","path":"lamddb-use-existing-func","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamddb-use-existing-func/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamddb-use-existing-func/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamddb-use-existing-func/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamddb-use-existing-func/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-use-existing-func/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["dynamodb:BatchGetItem","dynamodb:BatchWriteItem","dynamodb:ConditionCheckItem","dynamodb:DeleteItem","dynamodb:DescribeTable","dynamodb:GetItem","dynamodb:GetRecords","dynamodb:GetShardIterator","dynamodb:PutItem","dynamodb:Query","dynamodb:Scan","dynamodb:UpdateItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdadynamodbstackDynamoTable8138E93B","Arn"]},{"Ref":"AWS::NoValue"}]}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamddb-use-existing-func/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamddb-use-existing-func/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamddb-use-existing-func/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamddb-use-existing-func/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamddb-use-existing-func/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DDB_TABLE_NAME":{"Ref":"testlambdadynamodbstackDynamoTable8138E93B"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamddb-use-existing-func/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamddb-use-existing-func/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-dynamodb-stack":{"id":"test-lambda-dynamodb-stack","path":"lamddb-use-existing-func/test-lambda-dynamodb-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB","version":"2.95.1"},"children":{"DynamoTable":{"id":"DynamoTable","path":"lamddb-use-existing-func/test-lambda-dynamodb-stack/DynamoTable","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.Table","version":"2.223.0","metadata":[{"billingMode":"PAY_PER_REQUEST","encryption":"AWS_MANAGED","partitionKey":{"name":"*","type":"S"},"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true}}]},"children":{"Resource":{"id":"Resource","path":"lamddb-use-existing-func/test-lambda-dynamodb-stack/DynamoTable/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_dynamodb.CfnTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::DynamoDB::Table","aws:cdk:cloudformation:props":{"attributeDefinitions":[{"attributeName":"id","attributeType":"S"}],"billingMode":"PAY_PER_REQUEST","keySchema":[{"attributeName":"id","keyType":"HASH"}],"pointInTimeRecoverySpecification":{"pointInTimeRecoveryEnabled":true},"sseSpecification":{"sseEnabled":true}}}},"ScalingRole":{"id":"ScalingRole","path":"lamddb-use-existing-func/test-lambda-dynamodb-stack/DynamoTable/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}}}},"Integ":{"id":"Integ","path":"lamddb-use-existing-func/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamddb-use-existing-func/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamddb-use-existing-func/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamddb-use-existing-func/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-use-existing-func/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-use-existing-func/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamddb-use-existing-func/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamddb-use-existing-func/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/README.adoc index b3d884270..749e8e902 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/README.adoc @@ -51,7 +51,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToElasticachememcached(this, 'LambdaToElasticachememcachedPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -92,7 +92,7 @@ import software.amazon.awsconstructs.services.lambdaelasticachememcached.*; new LambdaToElasticachememcached(this, "LambdaToCachePattern", new LambdaToElasticachememcachedProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.assets.json index 677356498..a7ca3fdca 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.assets.json @@ -29,16 +29,16 @@ } } }, - "3c2ada6f9ddf26106985837ba0abb0a73b0cbb573b823d965da9d91cfca2cd3b": { + "6ca259f67a25465ac8d7bddbe00d098067629731a9296a2525713c0e124f041f": { "displayName": "lammem-existingResources Template", "source": { "path": "lammem-existingResources.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-9391d9ef": { + "current_account-current_region-89a90229": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3c2ada6f9ddf26106985837ba0abb0a73b0cbb573b823d965da9d91cfca2cd3b.json", + "objectKey": "6ca259f67a25465ac8d7bddbe00d098067629731a9296a2525713c0e124f041f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.template.json index 049b700b8..5f83943a7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.template.json @@ -489,7 +489,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "VpcConfig": { "SecurityGroupIds": [ { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/manifest.json index 8c55b6f27..dd2840002 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3c2ada6f9ddf26106985837ba0abb0a73b0cbb573b823d965da9d91cfca2cd3b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6ca259f67a25465ac8d7bddbe00d098067629731a9296a2525713c0e124f041f.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/tree.json index 7780c4452..1451ef3f4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-existingResources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lammem-existingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-existingResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-existingResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-existingResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-existingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-sg-security-group":{"id":"test-sg-security-group","path":"lammem-existingResources/test-sg-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-sg-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-sg-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-function":{"id":"test-function","path":"lammem-existingResources/test-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"runtime":"*","handler":"*","code":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lammem-existingResources/test-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lammem-existingResources/test-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"lammem-existingResources/test-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lammem-existingResources/test-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-existingResources/test-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testfunctionServiceRoleFB85AD63","Arn"]},"runtime":"nodejs20.x","vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testsgsecuritygroup89DCF621","GroupId"]}]}}}}}},"ec-subnetgroup-test-cache":{"id":"ec-subnetgroup-test-cache","path":"lammem-existingResources/ec-subnetgroup-test-cache","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"test-cache-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"test-cache-cachesg":{"id":"test-cache-cachesg","path":"lammem-existingResources/test-cache-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-cache-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-cache-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cache-cluster":{"id":"test-cache-cluster","path":"lammem-existingResources/test-cache-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"cross-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"test-cache-subnet-group","clusterName":"test-cache-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["testcachecachesg7265880E","GroupId"]},{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]}]}}},"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources/lammem-existingResources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.94.0"},"children":{"lammem-existingResources-cachesg":{"id":"lammem-existingResources-cachesg","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-existingResources-ingress":{"id":"lammem-existingResources-ingress","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]},"groupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"toPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}}}}}},"Integ":{"id":"Integ","path":"lammem-existingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-existingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lammem-existingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-existingResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-existingResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-existingResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-existingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-sg-security-group":{"id":"test-sg-security-group","path":"lammem-existingResources/test-sg-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-sg-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-sg-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-function":{"id":"test-function","path":"lammem-existingResources/test-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"runtime":"*","handler":"*","code":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lammem-existingResources/test-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lammem-existingResources/test-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"lammem-existingResources/test-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lammem-existingResources/test-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-existingResources/test-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testfunctionServiceRoleFB85AD63","Arn"]},"runtime":"nodejs22.x","vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testsgsecuritygroup89DCF621","GroupId"]}]}}}}}},"ec-subnetgroup-test-cache":{"id":"ec-subnetgroup-test-cache","path":"lammem-existingResources/ec-subnetgroup-test-cache","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"test-cache-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"test-cache-cachesg":{"id":"test-cache-cachesg","path":"lammem-existingResources/test-cache-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-cache-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-cache-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cache-cluster":{"id":"test-cache-cluster","path":"lammem-existingResources/test-cache-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"cross-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"test-cache-subnet-group","clusterName":"test-cache-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["testcachecachesg7265880E","GroupId"]},{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]}]}}},"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources/lammem-existingResources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.95.1"},"children":{"lammem-existingResources-cachesg":{"id":"lammem-existingResources-cachesg","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-existingResources-ingress":{"id":"lammem-existingResources-ingress","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]},"groupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"toPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}}}}}},"Integ":{"id":"Integ","path":"lammem-existingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-existingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/lammem-newResources.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/lammem-newResources.assets.json index 8f5cb46cd..50b66b6b1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/lammem-newResources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/lammem-newResources.assets.json @@ -29,16 +29,16 @@ } } }, - "5add6cbda1920c5acbfe8357ee9b4898adec03a5491030a42b2960a64914a7a6": { + "93be0ce99b9631772219fb7fa536c356cf09fa0bb884d8be116b8717ec78f1c7": { "displayName": "lammem-newResources Template", "source": { "path": "lammem-newResources.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-269dee1e": { + "current_account-current_region-27c75b54": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "5add6cbda1920c5acbfe8357ee9b4898adec03a5491030a42b2960a64914a7a6.json", + "objectKey": "93be0ce99b9631772219fb7fa536c356cf09fa0bb884d8be116b8717ec78f1c7.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/lammem-newResources.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/lammem-newResources.template.json index 48ca3ab0a..f2b3fc86b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/lammem-newResources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/lammem-newResources.template.json @@ -263,7 +263,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/manifest.json index ddb6ccced..c385807fd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5add6cbda1920c5acbfe8357ee9b4898adec03a5491030a42b2960a64914a7a6.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/93be0ce99b9631772219fb7fa536c356cf09fa0bb884d8be116b8717ec78f1c7.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/tree.json index 48d7a2dbe..4efe5b196 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-newResources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lammem-newResources":{"id":"lammem-newResources","path":"lammem-newResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lammem-newResources":{"id":"lammem-newResources","path":"lammem-newResources/lammem-newResources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.94.0"},"children":{"lammem-newResources-cachesg":{"id":"lammem-newResources-cachesg","path":"lammem-newResources/lammem-newResources/lammem-newResources-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/lammem-newResources-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-newResources/lammem-newResources/lammem-newResources-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-newResources-ingress":{"id":"lammem-newResources-ingress","path":"lammem-newResources/lammem-newResources/lammem-newResources-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":11222,"groupId":{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescachesg08EE8773","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescachesg08EE8773","GroupId"]},"toPort":11222}}},"ec-subnetgroup-lammem-newResources":{"id":"ec-subnetgroup-lammem-newResources","path":"lammem-newResources/lammem-newResources/ec-subnetgroup-lammem-newResources","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"lammem-newResources-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"lammem-newResources-cluster":{"id":"lammem-newResources-cluster","path":"lammem-newResources/lammem-newResources/lammem-newResources-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"cross-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"lammem-newResources-subnet-group","clusterName":"lammem-newResources-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescachesg08EE8773","GroupId"]}]}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"lammemnewResourcesLambdaFunctionServiceRoleDefaultPolicyBEBDF814","roles":[{"Ref":"lammemnewResourcesLambdaFunctionServiceRoleDB5D0991"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lammem-newResources/lammem-newResources/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-newResources/lammem-newResources/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lammem-newResources/lammem-newResources/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*","*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lammem-newResources/lammem-newResources/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lammem-newResources/lammem-newResources/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-newResources/lammem-newResources/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescluster026E518E","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescluster026E518E","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["lammemnewResourcesLambdaFunctionServiceRoleDB5D0991","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescachesg08EE8773","GroupId"]},{"Fn::GetAtt":["lammemnewResourcesReplaceDefaultSecurityGroupsecuritygroup6C020299","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lammem-newResources/lammem-newResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"lammemnewResourcesLambdaFunctioninlinePolicyAddedToExecutionRole03F480433","roles":[{"Ref":"lammemnewResourcesLambdaFunctionServiceRoleDB5D0991"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lammem-newResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-newResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-newResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-newResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-newResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-newResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-newResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-newResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-newResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-newResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-newResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-newResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-newResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-newResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-newResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-newResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-newResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-newResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-newResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-newResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-newResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-newResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-newResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-newResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-newResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-newResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-newResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-newResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-newResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lammem-newResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lammem-newResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lammem-newResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lammem-newResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-newResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-newResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-newResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-newResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-newResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-newResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-newResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lammem-newResources":{"id":"lammem-newResources","path":"lammem-newResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lammem-newResources":{"id":"lammem-newResources","path":"lammem-newResources/lammem-newResources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.95.1"},"children":{"lammem-newResources-cachesg":{"id":"lammem-newResources-cachesg","path":"lammem-newResources/lammem-newResources/lammem-newResources-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/lammem-newResources-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-newResources/lammem-newResources/lammem-newResources-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-newResources-ingress":{"id":"lammem-newResources-ingress","path":"lammem-newResources/lammem-newResources/lammem-newResources-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":11222,"groupId":{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescachesg08EE8773","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescachesg08EE8773","GroupId"]},"toPort":11222}}},"ec-subnetgroup-lammem-newResources":{"id":"ec-subnetgroup-lammem-newResources","path":"lammem-newResources/lammem-newResources/ec-subnetgroup-lammem-newResources","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"lammem-newResources-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"lammem-newResources-cluster":{"id":"lammem-newResources-cluster","path":"lammem-newResources/lammem-newResources/lammem-newResources-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"cross-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"lammem-newResources-subnet-group","clusterName":"lammem-newResources-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescachesg08EE8773","GroupId"]}]}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"lammemnewResourcesLambdaFunctionServiceRoleDefaultPolicyBEBDF814","roles":[{"Ref":"lammemnewResourcesLambdaFunctionServiceRoleDB5D0991"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lammem-newResources/lammem-newResources/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-newResources/lammem-newResources/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lammem-newResources/lammem-newResources/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*","*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lammem-newResources/lammem-newResources/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lammem-newResources/lammem-newResources/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-newResources/lammem-newResources/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescluster026E518E","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescluster026E518E","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["lammemnewResourcesLambdaFunctionServiceRoleDB5D0991","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["lammemnewResourceslammemnewResourcescachesg08EE8773","GroupId"]},{"Fn::GetAtt":["lammemnewResourcesReplaceDefaultSecurityGroupsecuritygroup6C020299","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lammem-newResources/lammem-newResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/lammem-newResources/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"lammemnewResourcesLambdaFunctioninlinePolicyAddedToExecutionRole03F480433","roles":[{"Ref":"lammemnewResourcesLambdaFunctionServiceRoleDB5D0991"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lammem-newResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-newResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-newResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-newResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-newResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-newResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-newResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-newResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-newResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-newResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-newResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-newResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-newResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-newResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-newResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-newResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-newResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-newResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-newResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-newResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-newResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-newResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-newResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-newResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-newResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-newResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-newResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-newResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-newResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-newResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lammem-newResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lammem-newResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lammem-newResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lammem-newResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-newResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-newResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-newResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-newResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-newResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-newResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-newResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.assets.json index b5c280444..c438de964 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.assets.json @@ -29,16 +29,16 @@ } } }, - "7e6db801385095f9443420c583e8f9ab7778e5d53ee0de34ad7e665552bca894": { + "dce287e2a64ffe7f93564634980719c534ea912bafee5772c804764b1cca5b0b": { "displayName": "lammem-withClientProps Template", "source": { "path": "lammem-withClientProps.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-5a378af6": { + "current_account-current_region-6128244d": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7e6db801385095f9443420c583e8f9ab7778e5d53ee0de34ad7e665552bca894.json", + "objectKey": "dce287e2a64ffe7f93564634980719c534ea912bafee5772c804764b1cca5b0b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.template.json index 31c01ff4c..2caaaac6c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.template.json @@ -263,7 +263,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/manifest.json index 7f5c547ac..3d5880006 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7e6db801385095f9443420c583e8f9ab7778e5d53ee0de34ad7e665552bca894.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/dce287e2a64ffe7f93564634980719c534ea912bafee5772c804764b1cca5b0b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/tree.json index 0ebd29afa..fc5451da9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.lammem-withClientProps.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lammem-withClientProps":{"id":"lammem-withClientProps","path":"lammem-withClientProps","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lammem-withClientProps":{"id":"lammem-withClientProps","path":"lammem-withClientProps/lammem-withClientProps","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.94.0"},"children":{"lammem-withClientProps-cachesg":{"id":"lammem-withClientProps-cachesg","path":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-withClientProps-ingress":{"id":"lammem-withClientProps-ingress","path":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":11222,"groupId":{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscachesgF0194DF0","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscachesgF0194DF0","GroupId"]},"toPort":11222}}},"ec-subnetgroup-lammem-withClientProps":{"id":"ec-subnetgroup-lammem-withClientProps","path":"lammem-withClientProps/lammem-withClientProps/ec-subnetgroup-lammem-withClientProps","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"lammem-withClientProps-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"lammem-withClientProps-cluster":{"id":"lammem-withClientProps-cluster","path":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"single-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"lammem-withClientProps-subnet-group","clusterName":"lammem-withClientProps-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscachesgF0194DF0","GroupId"]}]}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"lammemwithClientPropsLambdaFunctionServiceRoleDefaultPolicy50E02A22","roles":[{"Ref":"lammemwithClientPropsLambdaFunctionServiceRole4A4D2BF6"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lammem-withClientProps/lammem-withClientProps/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-withClientProps/lammem-withClientProps/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*","*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscluster6611E8C2","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscluster6611E8C2","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["lammemwithClientPropsLambdaFunctionServiceRole4A4D2BF6","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscachesgF0194DF0","GroupId"]},{"Fn::GetAtt":["lammemwithClientPropsReplaceDefaultSecurityGroupsecuritygroup8BCBDD33","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"lammemwithClientPropsLambdaFunctioninlinePolicyAddedToExecutionRole0EA653AE3","roles":[{"Ref":"lammemwithClientPropsLambdaFunctionServiceRole4A4D2BF6"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lammem-withClientProps/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"192.68.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-withClientProps/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-withClientProps/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-withClientProps/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"192.68.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-withClientProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-withClientProps/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-withClientProps/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-withClientProps/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-withClientProps/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-withClientProps/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"192.68.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-withClientProps/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-withClientProps/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-withClientProps/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-withClientProps/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-withClientProps/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-withClientProps/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-withClientProps/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-withClientProps/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-withClientProps/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-withClientProps/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lammem-withClientProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lammem-withClientProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lammem-withClientProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lammem-withClientProps/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-withClientProps/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-withClientProps/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-withClientProps/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-withClientProps/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-withClientProps/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-withClientProps/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-withClientProps/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lammem-withClientProps":{"id":"lammem-withClientProps","path":"lammem-withClientProps","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lammem-withClientProps":{"id":"lammem-withClientProps","path":"lammem-withClientProps/lammem-withClientProps","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.95.1"},"children":{"lammem-withClientProps-cachesg":{"id":"lammem-withClientProps-cachesg","path":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-withClientProps-ingress":{"id":"lammem-withClientProps-ingress","path":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":11222,"groupId":{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscachesgF0194DF0","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscachesgF0194DF0","GroupId"]},"toPort":11222}}},"ec-subnetgroup-lammem-withClientProps":{"id":"ec-subnetgroup-lammem-withClientProps","path":"lammem-withClientProps/lammem-withClientProps/ec-subnetgroup-lammem-withClientProps","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"lammem-withClientProps-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"lammem-withClientProps-cluster":{"id":"lammem-withClientProps-cluster","path":"lammem-withClientProps/lammem-withClientProps/lammem-withClientProps-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"single-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"lammem-withClientProps-subnet-group","clusterName":"lammem-withClientProps-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscachesgF0194DF0","GroupId"]}]}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"lammemwithClientPropsLambdaFunctionServiceRoleDefaultPolicy50E02A22","roles":[{"Ref":"lammemwithClientPropsLambdaFunctionServiceRole4A4D2BF6"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lammem-withClientProps/lammem-withClientProps/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-withClientProps/lammem-withClientProps/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*","*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscluster6611E8C2","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscluster6611E8C2","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["lammemwithClientPropsLambdaFunctionServiceRole4A4D2BF6","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["lammemwithClientPropslammemwithClientPropscachesgF0194DF0","GroupId"]},{"Fn::GetAtt":["lammemwithClientPropsReplaceDefaultSecurityGroupsecuritygroup8BCBDD33","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/lammem-withClientProps/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"lammemwithClientPropsLambdaFunctioninlinePolicyAddedToExecutionRole0EA653AE3","roles":[{"Ref":"lammemwithClientPropsLambdaFunctionServiceRole4A4D2BF6"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lammem-withClientProps/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"192.68.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-withClientProps/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-withClientProps/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-withClientProps/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"192.68.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-withClientProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-withClientProps/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-withClientProps/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-withClientProps/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-withClientProps/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-withClientProps/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"192.68.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-withClientProps/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-withClientProps/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-withClientProps/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-withClientProps/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-withClientProps/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-withClientProps/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-withClientProps/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-withClientProps/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-withClientProps/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-withClientProps/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-withClientProps/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-withClientProps/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lammem-withClientProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lammem-withClientProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lammem-withClientProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lammem-withClientProps/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-withClientProps/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-withClientProps/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-withClientProps/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-withClientProps/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-withClientProps/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-withClientProps/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-withClientProps/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.adoc index 9babf6c38..fe93ebed1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.adoc @@ -71,7 +71,7 @@ import * as lambda from "aws-cdk-lib/aws-lambda"; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }; @@ -125,7 +125,7 @@ import software.amazon.awsconstructs.services.lambdaelasticsearchkibana.*; new LambdaToElasticSearchAndKibana(this, "sample", new LambdaToElasticSearchAndKibanaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/lamels-deployFunctionWithClusterConfig.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/lamels-deployFunctionWithClusterConfig.assets.json index 218ab093c..c49873248 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/lamels-deployFunctionWithClusterConfig.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/lamels-deployFunctionWithClusterConfig.assets.json @@ -29,16 +29,16 @@ } } }, - "17e2971ed7f173fbd11a5e50dcbe868f6527663a9be45b00ac23747609eb3073": { + "0fda3750783e9907116119450d4225a0d6ecc09bb0baf4db6ec3ebd07a1a7513": { "displayName": "lamels-deployFunctionWithClusterConfig Template", "source": { "path": "lamels-deployFunctionWithClusterConfig.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-246ba3c6": { + "current_account-current_region-c56c64d8": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "17e2971ed7f173fbd11a5e50dcbe868f6527663a9be45b00ac23747609eb3073.json", + "objectKey": "0fda3750783e9907116119450d4225a0d6ecc09bb0baf4db6ec3ebd07a1a7513.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/lamels-deployFunctionWithClusterConfig.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/lamels-deployFunctionWithClusterConfig.template.json index 33fc4b63a..c619cdd0f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/lamels-deployFunctionWithClusterConfig.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/lamels-deployFunctionWithClusterConfig.template.json @@ -156,7 +156,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -789,6 +789,9 @@ ] } }, + "DependsOn": [ + "testlambdaelasticsearchkibana5CognitoKibanaConfigureRoleD2E8341A" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/manifest.json index 1b309c694..53faf4d81 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/17e2971ed7f173fbd11a5e50dcbe868f6527663a9be45b00ac23747609eb3073.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0fda3750783e9907116119450d4225a0d6ecc09bb0baf4db6ec3ebd07a1a7513.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/tree.json index 96a4fc269..04ffefecf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithClusterConfig.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-deployFunctionWithClusterConfig":{"id":"lamels-deployFunctionWithClusterConfig","path":"lamels-deployFunctionWithClusterConfig","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana5":{"id":"test-lambda-elasticsearch-kibana5","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana5LambdaFunctionServiceRoleDefaultPolicy8A628F4B","roles":[{"Ref":"testlambdaelasticsearchkibana5LambdaFunctionServiceRole26E43B12"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana5ElasticsearchDomain58F77409","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana5LambdaFunctionServiceRole26E43B12","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana5ReplaceDefaultSecurityGroupsecuritygroup375DBE67","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana5LambdaFunctioninlinePolicyAddedToExecutionRole0E5BA4B90","roles":[{"Ref":"testlambdaelasticsearchkibana5LambdaFunctionServiceRole26E43B12"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoUserPool4E321CD0"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana5CognitoUserPoolClientB41FB91B"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoUserPool4E321CD0","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoUserPool4E321CD0"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana5CognitoIdentityPool1B0A6046"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoIdentityPool1B0A6046"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoAuthorizedRole784B2C89","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoUserPool4E321CD0","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana5CognitoIdentityPool1B0A6046"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoKibanaConfigureRoleD2E8341A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana5CognitoKibanaConfigureRolePolicy11560205","roles":[{"Ref":"testlambdaelasticsearchkibana5CognitoKibanaConfigureRoleD2E8341A"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoAuthorizedRole784B2C89","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana5LambdaFunctionServiceRole26E43B12","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoIdentityPool1B0A6046"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoUserPool4E321CD0"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoKibanaConfigureRoleD2E8341A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"instanceCount":2,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2}},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana5ReplaceDefaultSecurityGroupsecuritygroup375DBE67","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamels-deployFunctionWithClusterConfig/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-deployFunctionWithClusterConfig/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithClusterConfig/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-deployFunctionWithClusterConfig/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-deployFunctionWithClusterConfig/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-deployFunctionWithClusterConfig/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-deployFunctionWithClusterConfig/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamels-deployFunctionWithClusterConfig/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithClusterConfig/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithClusterConfig/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-deployFunctionWithClusterConfig":{"id":"lamels-deployFunctionWithClusterConfig","path":"lamels-deployFunctionWithClusterConfig","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana5":{"id":"test-lambda-elasticsearch-kibana5","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana5LambdaFunctionServiceRoleDefaultPolicy8A628F4B","roles":[{"Ref":"testlambdaelasticsearchkibana5LambdaFunctionServiceRole26E43B12"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana5ElasticsearchDomain58F77409","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana5LambdaFunctionServiceRole26E43B12","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana5ReplaceDefaultSecurityGroupsecuritygroup375DBE67","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana5LambdaFunctioninlinePolicyAddedToExecutionRole0E5BA4B90","roles":[{"Ref":"testlambdaelasticsearchkibana5LambdaFunctionServiceRole26E43B12"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoUserPool4E321CD0"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana5CognitoUserPoolClientB41FB91B"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoUserPool4E321CD0","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoUserPool4E321CD0"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana5CognitoIdentityPool1B0A6046"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoIdentityPool1B0A6046"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoAuthorizedRole784B2C89","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoUserPool4E321CD0","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana5CognitoIdentityPool1B0A6046"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoKibanaConfigureRoleD2E8341A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana5CognitoKibanaConfigureRolePolicy11560205","roles":[{"Ref":"testlambdaelasticsearchkibana5CognitoKibanaConfigureRoleD2E8341A"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoAuthorizedRole784B2C89","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana5LambdaFunctionServiceRole26E43B12","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoIdentityPool1B0A6046"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana5CognitoUserPool4E321CD0"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana5CognitoKibanaConfigureRoleD2E8341A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"instanceCount":2,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2}},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana5ReplaceDefaultSecurityGroupsecuritygroup375DBE67","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/test-lambda-elasticsearch-kibana5/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamels-deployFunctionWithClusterConfig/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithClusterConfig/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-deployFunctionWithClusterConfig/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithClusterConfig/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-deployFunctionWithClusterConfig/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-deployFunctionWithClusterConfig/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-deployFunctionWithClusterConfig/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-deployFunctionWithClusterConfig/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-deployFunctionWithClusterConfig/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamels-deployFunctionWithClusterConfig/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithClusterConfig/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithClusterConfig/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithClusterConfig/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/lamels-deployFunctionWithExistingVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/lamels-deployFunctionWithExistingVpc.assets.json index c29b3e6a5..e3924b0cc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/lamels-deployFunctionWithExistingVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/lamels-deployFunctionWithExistingVpc.assets.json @@ -31,16 +31,16 @@ } } }, - "1cd384f5cbf261f87b0e5fc7f6a4d63396f07bb4ec3ab4be46606737935b7ac6": { + "6ef3b1e574215850945fea6bd65146f108e489e4c26948d59082f73b32d52acf": { "displayName": "lamels-deployFunctionWithExistingVpc Template", "source": { "path": "lamels-deployFunctionWithExistingVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-0f605325": { + "current_account-us-east-1-b874ff4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "1cd384f5cbf261f87b0e5fc7f6a4d63396f07bb4ec3ab4be46606737935b7ac6.json", + "objectKey": "6ef3b1e574215850945fea6bd65146f108e489e4c26948d59082f73b32d52acf.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/lamels-deployFunctionWithExistingVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/lamels-deployFunctionWithExistingVpc.template.json index 87fdb00ca..76af69783 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/lamels-deployFunctionWithExistingVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/lamels-deployFunctionWithExistingVpc.template.json @@ -801,7 +801,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -1438,6 +1438,9 @@ ] } }, + "DependsOn": [ + "testlambdaelasticsearchkibana4CognitoKibanaConfigureRole6A058B80" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/manifest.json index c9e3395f2..6847c3a42 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/1cd384f5cbf261f87b0e5fc7f6a4d63396f07bb4ec3ab4be46606737935b7ac6.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/6ef3b1e574215850945fea6bd65146f108e489e4c26948d59082f73b32d52acf.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/tree.json index 26fc187dc..d9f0ab9a1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithExistingVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-deployFunctionWithExistingVpc":{"id":"lamels-deployFunctionWithExistingVpc","path":"lamels-deployFunctionWithExistingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamels-deployFunctionWithExistingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamels-deployFunctionWithExistingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamels-deployFunctionWithExistingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-elasticsearch-kibana4":{"id":"test-lambda-elasticsearch-kibana4","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleDefaultPolicyA5AD88E5","roles":[{"Ref":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana4ElasticsearchDomainC32C1BE6","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4ReplaceDefaultSecurityGroupsecuritygroupA79E2B92","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4LambdaFunctioninlinePolicyAddedToExecutionRole0CFA48A09","roles":[{"Ref":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPoolClientABBF34C4"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoAuthorizedRoleA7D6B392","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoKibanaConfigureRole6A058B80","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4CognitoKibanaConfigureRolePolicy1615E937","roles":[{"Ref":"testlambdaelasticsearchkibana4CognitoKibanaConfigureRole6A058B80"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoAuthorizedRoleA7D6B392","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoKibanaConfigureRole6A058B80","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4ReplaceDefaultSecurityGroupsecuritygroupA79E2B92","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"lamels-deployFunctionWithExistingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithExistingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithExistingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-deployFunctionWithExistingVpc":{"id":"lamels-deployFunctionWithExistingVpc","path":"lamels-deployFunctionWithExistingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamels-deployFunctionWithExistingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamels-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamels-deployFunctionWithExistingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamels-deployFunctionWithExistingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-deployFunctionWithExistingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-elasticsearch-kibana4":{"id":"test-lambda-elasticsearch-kibana4","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleDefaultPolicyA5AD88E5","roles":[{"Ref":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana4ElasticsearchDomainC32C1BE6","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4ReplaceDefaultSecurityGroupsecuritygroupA79E2B92","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4LambdaFunctioninlinePolicyAddedToExecutionRole0CFA48A09","roles":[{"Ref":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPoolClientABBF34C4"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoAuthorizedRoleA7D6B392","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoKibanaConfigureRole6A058B80","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4CognitoKibanaConfigureRolePolicy1615E937","roles":[{"Ref":"testlambdaelasticsearchkibana4CognitoKibanaConfigureRole6A058B80"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoAuthorizedRoleA7D6B392","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoKibanaConfigureRole6A058B80","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4ReplaceDefaultSecurityGroupsecuritygroupA79E2B92","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithExistingVpc/test-lambda-elasticsearch-kibana4/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"lamels-deployFunctionWithExistingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithExistingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithExistingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/lamels-deployFunctionWithVpcProps.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/lamels-deployFunctionWithVpcProps.assets.json index 3f93abe1f..216c8a39d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/lamels-deployFunctionWithVpcProps.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/lamels-deployFunctionWithVpcProps.assets.json @@ -31,16 +31,16 @@ } } }, - "0431e13978e359f2b0e701973ceb2f69144393d6306393873883cf7502c2f212": { + "53b307bb4a26b805f4857fe271683915328d44d5b1e26e29c4eefe5e57107528": { "displayName": "lamels-deployFunctionWithVpcProps Template", "source": { "path": "lamels-deployFunctionWithVpcProps.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-1d499c9c": { + "current_account-us-east-1-349c5190": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "0431e13978e359f2b0e701973ceb2f69144393d6306393873883cf7502c2f212.json", + "objectKey": "53b307bb4a26b805f4857fe271683915328d44d5b1e26e29c4eefe5e57107528.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/lamels-deployFunctionWithVpcProps.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/lamels-deployFunctionWithVpcProps.template.json index 36664cb47..d84b0cbf4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/lamels-deployFunctionWithVpcProps.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/lamels-deployFunctionWithVpcProps.template.json @@ -156,7 +156,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -789,6 +789,9 @@ ] } }, + "DependsOn": [ + "testlambdaelasticsearchkibana3CognitoKibanaConfigureRoleE8D8BE00" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/manifest.json index 087eb8024..581b6d4d9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/0431e13978e359f2b0e701973ceb2f69144393d6306393873883cf7502c2f212.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/53b307bb4a26b805f4857fe271683915328d44d5b1e26e29c4eefe5e57107528.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/tree.json index 7274b8a20..19aeca4b9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployFunctionWithVpcProps.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-deployFunctionWithVpcProps":{"id":"lamels-deployFunctionWithVpcProps","path":"lamels-deployFunctionWithVpcProps","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana3":{"id":"test-lambda-elasticsearch-kibana3","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana3LambdaFunctionServiceRoleDefaultPolicyA148ED7D","roles":[{"Ref":"testlambdaelasticsearchkibana3LambdaFunctionServiceRoleA3C1E07E"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana3ElasticsearchDomain268DE741","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana3LambdaFunctionServiceRoleA3C1E07E","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana3ReplaceDefaultSecurityGroupsecuritygroupEB497E1A","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana3LambdaFunctioninlinePolicyAddedToExecutionRole0B7497C66","roles":[{"Ref":"testlambdaelasticsearchkibana3LambdaFunctionServiceRoleA3C1E07E"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana3CognitoUserPoolClient89D3C6A0"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana3CognitoIdentityPool48956B3D"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoIdentityPool48956B3D"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoAuthorizedRole2E055088","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana3CognitoIdentityPool48956B3D"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoKibanaConfigureRoleE8D8BE00","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana3CognitoKibanaConfigureRolePolicyF1017A7A","roles":[{"Ref":"testlambdaelasticsearchkibana3CognitoKibanaConfigureRoleE8D8BE00"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoAuthorizedRole2E055088","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana3LambdaFunctionServiceRoleA3C1E07E","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoIdentityPool48956B3D"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoKibanaConfigureRoleE8D8BE00","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana3ReplaceDefaultSecurityGroupsecuritygroupEB497E1A","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamels-deployFunctionWithVpcProps/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"ipAddresses":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-deployFunctionWithVpcProps/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithVpcProps/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-deployFunctionWithVpcProps/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-deployFunctionWithVpcProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-deployFunctionWithVpcProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-deployFunctionWithVpcProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamels-deployFunctionWithVpcProps/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithVpcProps/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithVpcProps/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-deployFunctionWithVpcProps":{"id":"lamels-deployFunctionWithVpcProps","path":"lamels-deployFunctionWithVpcProps","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana3":{"id":"test-lambda-elasticsearch-kibana3","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana3LambdaFunctionServiceRoleDefaultPolicyA148ED7D","roles":[{"Ref":"testlambdaelasticsearchkibana3LambdaFunctionServiceRoleA3C1E07E"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana3ElasticsearchDomain268DE741","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana3LambdaFunctionServiceRoleA3C1E07E","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana3ReplaceDefaultSecurityGroupsecuritygroupEB497E1A","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana3LambdaFunctioninlinePolicyAddedToExecutionRole0B7497C66","roles":[{"Ref":"testlambdaelasticsearchkibana3LambdaFunctionServiceRoleA3C1E07E"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana3CognitoUserPoolClient89D3C6A0"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana3CognitoIdentityPool48956B3D"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoIdentityPool48956B3D"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoAuthorizedRole2E055088","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana3CognitoIdentityPool48956B3D"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoKibanaConfigureRoleE8D8BE00","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana3CognitoKibanaConfigureRolePolicyF1017A7A","roles":[{"Ref":"testlambdaelasticsearchkibana3CognitoKibanaConfigureRoleE8D8BE00"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoAuthorizedRole2E055088","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana3LambdaFunctionServiceRoleA3C1E07E","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoIdentityPool48956B3D"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana3CognitoUserPoolEF0D5793"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana3CognitoKibanaConfigureRoleE8D8BE00","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana3ReplaceDefaultSecurityGroupsecuritygroupEB497E1A","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/test-lambda-elasticsearch-kibana3/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamels-deployFunctionWithVpcProps/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"ipAddresses":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployFunctionWithVpcProps/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-deployFunctionWithVpcProps/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithVpcProps/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-deployFunctionWithVpcProps/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-deployFunctionWithVpcProps/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-deployFunctionWithVpcProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-deployFunctionWithVpcProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-deployFunctionWithVpcProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamels-deployFunctionWithVpcProps/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithVpcProps/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployFunctionWithVpcProps/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployFunctionWithVpcProps/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/lamels-deployToFiveZones.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/lamels-deployToFiveZones.assets.json index 35d76bbf9..2a6ce7fab 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/lamels-deployToFiveZones.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/lamels-deployToFiveZones.assets.json @@ -29,16 +29,16 @@ } } }, - "11d07f28ad00be2bbdf695fbb316d4451cb6042fc7da21f12bbb6a61367c01ba": { + "71a9d222170e164613f309e3e84f698fe819316b77410e0fd450709750acad3d": { "displayName": "lamels-deployToFiveZones Template", "source": { "path": "lamels-deployToFiveZones.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-6e5a245e": { + "current_account-current_region-8c6fb30c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "11d07f28ad00be2bbdf695fbb316d4451cb6042fc7da21f12bbb6a61367c01ba.json", + "objectKey": "71a9d222170e164613f309e3e84f698fe819316b77410e0fd450709750acad3d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/lamels-deployToFiveZones.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/lamels-deployToFiveZones.template.json index d67dd8c60..ce5b0d7b9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/lamels-deployToFiveZones.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/lamels-deployToFiveZones.template.json @@ -156,7 +156,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -789,6 +789,9 @@ ] } }, + "DependsOn": [ + "testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/manifest.json index 71185a2c3..a2c4e257e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/11d07f28ad00be2bbdf695fbb316d4451cb6042fc7da21f12bbb6a61367c01ba.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/71a9d222170e164613f309e3e84f698fe819316b77410e0fd450709750acad3d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/tree.json index 7b2a1fffb..f59508ec3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-deployToFiveZones.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-deployToFiveZones":{"id":"lamels-deployToFiveZones","path":"lamels-deployToFiveZones","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana":{"id":"test-lambda-elasticsearch-kibana","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctionServiceRoleDefaultPolicy199413EB","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibanaElasticsearchDomain50D5F86E","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaReplaceDefaultSecurityGroupsecuritygroup9C517245","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctioninlinePolicyAddedToExecutionRole043DCBC33","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPoolClient8F70A2AA"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRolePolicyB7090E91","roles":[{"Ref":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaReplaceDefaultSecurityGroupsecuritygroup9C517245","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamels-deployToFiveZones/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployToFiveZones/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployToFiveZones/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-deployToFiveZones/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-deployToFiveZones/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployToFiveZones/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-deployToFiveZones/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployToFiveZones/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-deployToFiveZones/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-deployToFiveZones/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-deployToFiveZones/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-deployToFiveZones/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamels-deployToFiveZones/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-deployToFiveZones/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-deployToFiveZones/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-deployToFiveZones/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployToFiveZones/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployToFiveZones/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployToFiveZones/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployToFiveZones/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-deployToFiveZones":{"id":"lamels-deployToFiveZones","path":"lamels-deployToFiveZones","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana":{"id":"test-lambda-elasticsearch-kibana","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctionServiceRoleDefaultPolicy199413EB","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibanaElasticsearchDomain50D5F86E","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaReplaceDefaultSecurityGroupsecuritygroup9C517245","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctioninlinePolicyAddedToExecutionRole043DCBC33","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPoolClient8F70A2AA"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRolePolicyB7090E91","roles":[{"Ref":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaReplaceDefaultSecurityGroupsecuritygroup9C517245","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamels-deployToFiveZones/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployToFiveZones/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-deployToFiveZones/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-deployToFiveZones/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-deployToFiveZones/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-deployToFiveZones/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployToFiveZones/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-deployToFiveZones/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-deployToFiveZones/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-deployToFiveZones/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-deployToFiveZones/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-deployToFiveZones/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-deployToFiveZones/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-deployToFiveZones/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-deployToFiveZones/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamels-deployToFiveZones/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-deployToFiveZones/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-deployToFiveZones/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-deployToFiveZones/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployToFiveZones/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployToFiveZones/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-deployToFiveZones/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-deployToFiveZones/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/lamels-disabledZoneAwareness.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/lamels-disabledZoneAwareness.assets.json index e5d5c3904..10ccaa823 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/lamels-disabledZoneAwareness.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/lamels-disabledZoneAwareness.assets.json @@ -29,16 +29,16 @@ } } }, - "a6774ff5d5dfafef7b73a2d6c0f39c1206e1974d37e851863b7776a3c609aa06": { + "2f7ecb45ea067648a717670b63e3cf85037a963371c8db0cd1e1b3c61e5c3057": { "displayName": "lamels-disabledZoneAwareness Template", "source": { "path": "lamels-disabledZoneAwareness.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-445367a9": { + "current_account-current_region-d34f170e": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a6774ff5d5dfafef7b73a2d6c0f39c1206e1974d37e851863b7776a3c609aa06.json", + "objectKey": "2f7ecb45ea067648a717670b63e3cf85037a963371c8db0cd1e1b3c61e5c3057.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/lamels-disabledZoneAwareness.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/lamels-disabledZoneAwareness.template.json index 0695af6bb..1a66c6db8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/lamels-disabledZoneAwareness.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/lamels-disabledZoneAwareness.template.json @@ -156,7 +156,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -778,6 +778,9 @@ ] } }, + "DependsOn": [ + "testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/manifest.json index 7424b3c8a..5b5215dff 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a6774ff5d5dfafef7b73a2d6c0f39c1206e1974d37e851863b7776a3c609aa06.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2f7ecb45ea067648a717670b63e3cf85037a963371c8db0cd1e1b3c61e5c3057.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/tree.json index e7e915c4f..4a93185c5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-disabledZoneAwareness.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-disabledZoneAwareness":{"id":"lamels-disabledZoneAwareness","path":"lamels-disabledZoneAwareness","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana":{"id":"test-lambda-elasticsearch-kibana","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctionServiceRoleDefaultPolicy199413EB","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibanaElasticsearchDomain50D5F86E","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaReplaceDefaultSecurityGroupsecuritygroup9C517245","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctioninlinePolicyAddedToExecutionRole043DCBC33","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPoolClient8F70A2AA"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRolePolicyB7090E91","roles":[{"Ref":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterCount":3,"dedicatedMasterEnabled":true,"instanceCount":3,"zoneAwarenessEnabled":false},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaReplaceDefaultSecurityGroupsecuritygroup9C517245","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamels-disabledZoneAwareness/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-disabledZoneAwareness/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-disabledZoneAwareness/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-disabledZoneAwareness/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-disabledZoneAwareness/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-disabledZoneAwareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-disabledZoneAwareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-disabledZoneAwareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamels-disabledZoneAwareness/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-disabledZoneAwareness/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-disabledZoneAwareness/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-disabledZoneAwareness/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-disabledZoneAwareness/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-disabledZoneAwareness/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-disabledZoneAwareness/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-disabledZoneAwareness/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-disabledZoneAwareness":{"id":"lamels-disabledZoneAwareness","path":"lamels-disabledZoneAwareness","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana":{"id":"test-lambda-elasticsearch-kibana","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctionServiceRoleDefaultPolicy199413EB","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibanaElasticsearchDomain50D5F86E","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaReplaceDefaultSecurityGroupsecuritygroup9C517245","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctioninlinePolicyAddedToExecutionRole043DCBC33","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPoolClient8F70A2AA"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRolePolicyB7090E91","roles":[{"Ref":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterCount":3,"dedicatedMasterEnabled":true,"instanceCount":3,"zoneAwarenessEnabled":false},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaReplaceDefaultSecurityGroupsecuritygroup9C517245","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamels-disabledZoneAwareness/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamels-disabledZoneAwareness/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamels-disabledZoneAwareness/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamels-disabledZoneAwareness/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamels-disabledZoneAwareness/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamels-disabledZoneAwareness/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamels-disabledZoneAwareness/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamels-disabledZoneAwareness/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamels-disabledZoneAwareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamels-disabledZoneAwareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamels-disabledZoneAwareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamels-disabledZoneAwareness/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-disabledZoneAwareness/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-disabledZoneAwareness/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-disabledZoneAwareness/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-disabledZoneAwareness/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-disabledZoneAwareness/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-disabledZoneAwareness/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-disabledZoneAwareness/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/asset.bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/asset.bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035/index.js new file mode 100644 index 000000000..414e0b959 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/asset.bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035/index.js @@ -0,0 +1,72 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +var AWS = require('aws-sdk'); +var path = require('path'); + +console.log('Loading function'); + +var esDomain = { + endpoint: process.env.DOMAIN_ENDPOINT, + region: process.env.AWS_REGION, + index: 'records', + doctype: 'movie' +}; + +var creds = new AWS.EnvironmentCredentials('AWS'); +var endpoint = new AWS.Endpoint(esDomain.endpoint); + +function postDocumentToES(doc, context) { + var req = new AWS.HttpRequest(endpoint); + + req.method = 'POST'; + req.path = path.join('/', esDomain.index, esDomain.doctype); + req.region = esDomain.region; + req.body = doc; + req.headers['presigned-expires'] = false; + req.headers['Host'] = esDomain.endpoint; + req.headers['Content-Type'] = 'application/json'; + + // Sign the request (Sigv4) + var signer = new AWS.Signers.V4(req, 'es'); + signer.addAuthorization(creds, new Date()); + + // Post document to ES + var send = new AWS.NodeHttpClient(); + send.handleRequest(req, null, function(httpResp) { + var body = ''; + httpResp.on('data', function (chunk) { + body += chunk; + }); + httpResp.on('end', function (chunk) { + console.log('All movie records added to ES.'); + context.succeed(); + }); + }, function(err) { + console.log('Error: ' + err); + context.fail(); + }); +} + +exports.handler = (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); + postDocumentToOpenSearch("{ \"title\": \"Moby Dick\" }", context); + postDocumentToOpenSearch("{ \"title\": \"A Tale of Two Cities\" }", context); + postDocumentToOpenSearch("{ \"title\": \"The Phantom of the Opera\" }", context); + + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello from AWS Solutions Constructs!\n` + }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/integ.json index 982b9ba7b..e433b473d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamels-domain-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamels-domain-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamelsdomainargumentsIntegDefaultTestDeployAssert01468AA9" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamels-domain-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamels-domain-arguments.assets.json index 707487c55..88666baa8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamels-domain-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamels-domain-arguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035": { + "displayName": "test-lambda-elasticsearch-kibana2/LambdaFunction/Code", "source": { "path": "asset.bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-6d833b3f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "6c0a7a1dc017b1b6f4592e06626737cf8884360662b551b2c1a6ab027db810e9": { + "59b71837fc30b62a4b665d00a1690ab875a403ab7a033e3bb9deecd16aaa84b5": { + "displayName": "lamels-domain-arguments Template", "source": { "path": "lamels-domain-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-6c3a7549": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "6c0a7a1dc017b1b6f4592e06626737cf8884360662b551b2c1a6ab027db810e9.json", + "objectKey": "59b71837fc30b62a4b665d00a1690ab875a403ab7a033e3bb9deecd16aaa84b5.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamels-domain-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamels-domain-arguments.template.json index fbc80349d..bd4a8b024 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamels-domain-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamels-domain-arguments.template.json @@ -89,7 +89,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -679,6 +679,9 @@ "AutomatedSnapshotStartHour": 1 } }, + "DependsOn": [ + "testlambdaelasticsearchkibana2CognitoKibanaConfigureRoleC9C9E921" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamelsdomainargumentsIntegDefaultTestDeployAssert01468AA9.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamelsdomainargumentsIntegDefaultTestDeployAssert01468AA9.assets.json index 6a208257d..52a952049 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamelsdomainargumentsIntegDefaultTestDeployAssert01468AA9.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/lamelsdomainargumentsIntegDefaultTestDeployAssert01468AA9.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamelsdomainargumentsIntegDefaultTestDeployAssert01468AA9 Template", "source": { "path": "lamelsdomainargumentsIntegDefaultTestDeployAssert01468AA9.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/manifest.json index 03490a05b..572274ad1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamelsdomainargumentsIntegDefaultTestDeployAssert01468AA9.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6c0a7a1dc017b1b6f4592e06626737cf8884360662b551b2c1a6ab027db810e9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/59b71837fc30b62a4b665d00a1690ab875a403ab7a033e3bb9deecd16aaa84b5.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -355,7 +355,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -375,7 +376,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -395,7 +397,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -415,7 +418,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -435,7 +439,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -455,7 +460,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -475,7 +481,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -495,7 +502,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -515,7 +523,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -541,15 +550,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "testlambdaelasticsearchkibana2LambdaFunctionServiceRoleDefaultPolicy438CAC76": [ - { - "type": "aws:cdk:logicalId", - "data": "testlambdaelasticsearchkibana2LambdaFunctionServiceRoleDefaultPolicy438CAC76", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "lamels-domain-arguments" @@ -559,7 +559,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/tree.json index 2773d52ba..6d56b7ec6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-domain-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamels-domain-arguments":{"id":"lamels-domain-arguments","path":"lamels-domain-arguments","children":{"test-lambda-elasticsearch-kibana2":{"id":"test-lambda-elasticsearch-kibana2","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction","children":{"Code":{"id":"Code","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana2ElasticsearchDomainE2BD1E73","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana2LambdaFunctionServiceRoleA59E9EBF","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana2LambdaFunctioninlinePolicyAddedToExecutionRole0DD92EB84","roles":[{"Ref":"testlambdaelasticsearchkibana2LambdaFunctionServiceRoleA59E9EBF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoUserPool","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoUserPool/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.186.0","metadata":["*"]}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoUserPoolClient","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoUserPoolClient/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.186.0","metadata":[{"userPool":"*"}]}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoIdentityPool","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana2CognitoUserPoolClientB0F3872A"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA","ProviderName"]},"serverSideTokenCheck":true}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.186.0"}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/UserPoolDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.186.0"}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoAuthorizedRole","children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoAuthorizedRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana2CognitoIdentityPool0681F400"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/IdentityPoolRoleMapping","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoIdentityPool0681F400"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoAuthorizedRole7AD979E9","Arn"]}}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.186.0"}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRole","children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRolePolicy","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRolePolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana2CognitoIdentityPool0681F400"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoKibanaConfigureRoleC9C9E921","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana2CognitoKibanaConfigureRolePolicy6DE68343","roles":[{"Ref":"testlambdaelasticsearchkibana2CognitoKibanaConfigureRoleC9C9E921"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/ElasticsearchDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoAuthorizedRole7AD979E9","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana2LambdaFunctionServiceRoleA59E9EBF","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoIdentityPool0681F400"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoKibanaConfigureRoleC9C9E921","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.186.0"}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/StatusRedAlarm","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/StatusRedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/StatusYellowAlarm","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/StatusYellowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/FreeStorageSpaceTooLowAlarm","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/FreeStorageSpaceTooLowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/IndexWritesBlockedTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/IndexWritesBlockedTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/AutomatedSnapshotFailureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/AutomatedSnapshotFailureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/JVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/JVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/MasterCPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/MasterCPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/MasterJVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/MasterJVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamels-domain-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-domain-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamels-domain-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-domain-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-domain-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-domain-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-domain-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-domain-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-domain-arguments":{"id":"lamels-domain-arguments","path":"lamels-domain-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana2":{"id":"test-lambda-elasticsearch-kibana2","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana2ElasticsearchDomainE2BD1E73","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana2LambdaFunctionServiceRoleA59E9EBF","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana2LambdaFunctioninlinePolicyAddedToExecutionRole0DD92EB84","roles":[{"Ref":"testlambdaelasticsearchkibana2LambdaFunctionServiceRoleA59E9EBF"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana2CognitoUserPoolClientB0F3872A"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana2CognitoIdentityPool0681F400"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoIdentityPool0681F400"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoAuthorizedRole7AD979E9","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana2CognitoIdentityPool0681F400"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoKibanaConfigureRoleC9C9E921","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana2CognitoKibanaConfigureRolePolicy6DE68343","roles":[{"Ref":"testlambdaelasticsearchkibana2CognitoKibanaConfigureRoleC9C9E921"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoAuthorizedRole7AD979E9","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana2LambdaFunctionServiceRoleA59E9EBF","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoIdentityPool0681F400"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana2CognitoUserPool9D73D9DA"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana2CognitoKibanaConfigureRoleC9C9E921","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-domain-arguments/test-lambda-elasticsearch-kibana2/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"lamels-domain-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-domain-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-domain-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-domain-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-domain-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-domain-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-domain-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-domain-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/asset.bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/asset.bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035/index.js new file mode 100644 index 000000000..414e0b959 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/asset.bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035/index.js @@ -0,0 +1,72 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +var AWS = require('aws-sdk'); +var path = require('path'); + +console.log('Loading function'); + +var esDomain = { + endpoint: process.env.DOMAIN_ENDPOINT, + region: process.env.AWS_REGION, + index: 'records', + doctype: 'movie' +}; + +var creds = new AWS.EnvironmentCredentials('AWS'); +var endpoint = new AWS.Endpoint(esDomain.endpoint); + +function postDocumentToES(doc, context) { + var req = new AWS.HttpRequest(endpoint); + + req.method = 'POST'; + req.path = path.join('/', esDomain.index, esDomain.doctype); + req.region = esDomain.region; + req.body = doc; + req.headers['presigned-expires'] = false; + req.headers['Host'] = esDomain.endpoint; + req.headers['Content-Type'] = 'application/json'; + + // Sign the request (Sigv4) + var signer = new AWS.Signers.V4(req, 'es'); + signer.addAuthorization(creds, new Date()); + + // Post document to ES + var send = new AWS.NodeHttpClient(); + send.handleRequest(req, null, function(httpResp) { + var body = ''; + httpResp.on('data', function (chunk) { + body += chunk; + }); + httpResp.on('end', function (chunk) { + console.log('All movie records added to ES.'); + context.succeed(); + }); + }, function(err) { + console.log('Error: ' + err); + context.fail(); + }); +} + +exports.handler = (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); + postDocumentToOpenSearch("{ \"title\": \"Moby Dick\" }", context); + postDocumentToOpenSearch("{ \"title\": \"A Tale of Two Cities\" }", context); + postDocumentToOpenSearch("{ \"title\": \"The Phantom of the Opera\" }", context); + + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello from AWS Solutions Constructs!\n` + }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/integ.json index 04340e902..4d51cd64e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamels-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamels-no-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamelsnoargumentsIntegDefaultTestDeployAssert76E00201" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamels-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamels-no-arguments.assets.json index 55954f91c..6eee765a3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamels-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamels-no-arguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035": { + "displayName": "test-lambda-elasticsearch-kibana/LambdaFunction/Code", "source": { "path": "asset.bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-6d833b3f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "8ef049669b341b2a2f8a01b1deabeba7225375a403f0b7a38fda186f6dd8d699": { + "ec545121fa06649384b1e86cffbc0fac3b234fc93d56acd3f697659167595635": { + "displayName": "lamels-no-arguments Template", "source": { "path": "lamels-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-b86f69ee": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "8ef049669b341b2a2f8a01b1deabeba7225375a403f0b7a38fda186f6dd8d699.json", + "objectKey": "ec545121fa06649384b1e86cffbc0fac3b234fc93d56acd3f697659167595635.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamels-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamels-no-arguments.template.json index bbd503cbc..0195bb62e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamels-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamels-no-arguments.template.json @@ -89,7 +89,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -679,6 +679,9 @@ "AutomatedSnapshotStartHour": 1 } }, + "DependsOn": [ + "testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamelsnoargumentsIntegDefaultTestDeployAssert76E00201.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamelsnoargumentsIntegDefaultTestDeployAssert76E00201.assets.json index 5d0cef5a4..545b829dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamelsnoargumentsIntegDefaultTestDeployAssert76E00201.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/lamelsnoargumentsIntegDefaultTestDeployAssert76E00201.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamelsnoargumentsIntegDefaultTestDeployAssert76E00201 Template", "source": { "path": "lamelsnoargumentsIntegDefaultTestDeployAssert76E00201.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/manifest.json index 9c5dcd013..82da2a3a8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamelsnoargumentsIntegDefaultTestDeployAssert76E00201.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8ef049669b341b2a2f8a01b1deabeba7225375a403f0b7a38fda186f6dd8d699.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ec545121fa06649384b1e86cffbc0fac3b234fc93d56acd3f697659167595635.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -355,7 +355,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -375,7 +376,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -395,7 +397,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -415,7 +418,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -435,7 +439,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -455,7 +460,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -475,7 +481,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -495,7 +502,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -515,7 +523,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -541,15 +550,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "testlambdaelasticsearchkibanaLambdaFunctionServiceRoleDefaultPolicy199413EB": [ - { - "type": "aws:cdk:logicalId", - "data": "testlambdaelasticsearchkibanaLambdaFunctionServiceRoleDefaultPolicy199413EB", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "lamels-no-arguments" @@ -559,7 +559,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/tree.json index b77155ddb..9628789d5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.lamels-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamels-no-arguments":{"id":"lamels-no-arguments","path":"lamels-no-arguments","children":{"test-lambda-elasticsearch-kibana":{"id":"test-lambda-elasticsearch-kibana","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction","children":{"Code":{"id":"Code","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibanaElasticsearchDomain50D5F86E","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctioninlinePolicyAddedToExecutionRole043DCBC33","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoUserPool","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoUserPool/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.186.0","metadata":["*"]}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoUserPoolClient","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoUserPoolClient/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.186.0","metadata":[{"userPool":"*"}]}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoIdentityPool","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPoolClient8F70A2AA"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","ProviderName"]},"serverSideTokenCheck":true}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.186.0"}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/UserPoolDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.186.0"}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole","children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/IdentityPoolRoleMapping","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]}}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.186.0"}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole","children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRolePolicyB7090E91","roles":[{"Ref":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/ElasticsearchDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.186.0"}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/StatusRedAlarm","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/StatusRedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/StatusYellowAlarm","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/StatusYellowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamels-no-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-no-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamels-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-no-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamels-no-arguments":{"id":"lamels-no-arguments","path":"lamels-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-elasticsearch-kibana":{"id":"test-lambda-elasticsearch-kibana","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticsearch-kibana.LambdaToElasticSearchAndKibana","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bbd57bdeab435eb80e47f68491febf3b4696a7765e7be0881f10422225933035.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibanaElasticsearchDomain50D5F86E","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaLambdaFunctioninlinePolicyAddedToExecutionRole043DCBC33","roles":[{"Ref":"testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPoolClient8F70A2AA"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]}}}}},"CognitoKibanaConfigureRole":{"id":"CognitoKibanaConfigureRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoKibanaConfigureRole":{"id":"ImportCognitoKibanaConfigureRole","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/ImportCognitoKibanaConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoKibanaConfigureRolePolicy":{"id":"CognitoKibanaConfigureRolePolicy","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CognitoKibanaConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateElasticsearchDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoUserPool9537802B","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRolePolicyB7090E91","roles":[{"Ref":"testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1"}]}}}}},"ElasticsearchDomain":{"id":"ElasticsearchDomain","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/ElasticsearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticsearch.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Elasticsearch::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoAuthorizedRole88FAFCFA","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibanaLambdaFunctionServiceRole3AFFEAA2","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoIdentityPoolC48068F0"},"userPoolId":{"Ref":"testlambdaelasticsearchkibanaCognitoUserPool9537802B"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibanaCognitoKibanaConfigureRole8F40C1A1","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"elasticsearchClusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"elasticsearchVersion":"6.3","encryptionAtRestOptions":{"enabled":true},"nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamels-no-arguments/test-lambda-elasticsearch-kibana/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"lamels-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamels-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamels-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamels-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamels-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamels-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.adoc index f45f4c427..a3dd09bf0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.adoc @@ -49,7 +49,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToEventbridge(this, 'LambdaToEventbridgePattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.lambdaeventbridge.*; new LambdaToEventbridge(this, "LambdaToEventbridgePattern", new LambdaToEventbridgeProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -199,6 +199,10 @@ and higher functions) image::aws-lambda-eventbridge.png["Diagram showing the Lambda function, CloudWatch log group, EventBridge bus and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call EventBridge, here is a EventBridge example for PutEventsCommand: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/eventbridge/actions/put-events.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/asset.b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/asset.b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146/index.js new file mode 100755 index 000000000..ccf8fdfa2 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/asset.b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146/index.js @@ -0,0 +1,34 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); +const eventbridge = new aws.EventBridge(); +exports.handler = () => { + const params = { + Entries: [{ + EventBusName: process.env.EVENTBUS_NAME, + Source: 'solutionsconstructs', + DetailType: 'test', + Detail: JSON.stringify({ + Hello: 'World' + }) + }] + }; + eventbridge.putEvents(params, function (err, data) { + if (err) { + throw Error('An error while putting the event.'); + } else { + console.log('Event was successfully sent.'); + } + }); +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/integ.json index 8809e2e2b..58590b411 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamevt-deployFunction/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamevtdeployFunctionIntegDefaultTestDeployAssertEE6CC055" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevt-deployFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevt-deployFunction.assets.json index 8b3269e00..59b3a8546 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevt-deployFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevt-deployFunction.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146": { "displayName": "test-lambda-eventbridge/LambdaFunction/Code", @@ -15,16 +15,16 @@ } } }, - "d705cb5705330c89459ff29a956f8939a34acb93cdfe96ca0246d5287993284a": { + "f25837e858b6679edc5ea2a8c0dbf7e1badb73991706cb82283378889a701592": { "displayName": "lamevt-deployFunction Template", "source": { "path": "lamevt-deployFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-6ac75aa2": { + "current_account-current_region-5376f454": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "d705cb5705330c89459ff29a956f8939a34acb93cdfe96ca0246d5287993284a.json", + "objectKey": "f25837e858b6679edc5ea2a8c0dbf7e1badb73991706cb82283378889a701592.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevt-deployFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevt-deployFunction.template.json index 87bf7554a..a5f9b1492 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevt-deployFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevt-deployFunction.template.json @@ -125,7 +125,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -260,7 +260,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevtdeployFunctionIntegDefaultTestDeployAssertEE6CC055.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevtdeployFunctionIntegDefaultTestDeployAssertEE6CC055.assets.json index 29b5073b6..9f6301679 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevtdeployFunctionIntegDefaultTestDeployAssertEE6CC055.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/lamevtdeployFunctionIntegDefaultTestDeployAssertEE6CC055.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamevtdeployFunctionIntegDefaultTestDeployAssertEE6CC055 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/manifest.json index 137681bf4..43080cb19 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d705cb5705330c89459ff29a956f8939a34acb93cdfe96ca0246d5287993284a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f25837e858b6679edc5ea2a8c0dbf7e1badb73991706cb82283378889a701592.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -399,57 +399,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -458,7 +449,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -535,7 +529,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -679,7 +673,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -708,7 +705,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -772,7 +772,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -806,7 +809,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -829,7 +835,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -859,6 +868,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/tree.json index b58bc4478..6ba670649 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamevt-deployFunction":{"id":"lamevt-deployFunction","path":"lamevt-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-deployFunction/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":events:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":event-bus/default"]]}}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctionServiceRoleDefaultPolicy0F454786","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":"default"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaeventbridgeLambdaFunctionServiceRole0FD85077","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctioninlinePolicyAddedToExecutionRole0885DF4B9","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"default-event-bus":{"id":"default-event-bus","path":"lamevt-deployFunction/test-lambda-eventbridge/default-event-bus","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}}}},"testServiceRole":{"id":"testServiceRole","path":"lamevt-deployFunction/testServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImporttestServiceRole":{"id":"ImporttestServiceRole","path":"lamevt-deployFunction/testServiceRole/ImporttestServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunction/testServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"test":{"id":"test","path":"lamevt-deployFunction/test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"lamevt-deployFunction/test/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-deployFunction/test/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-deployFunction/test/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-deployFunction/test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testServiceRoleF364A929","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-deployFunction/test/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunction/test/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testinlinePolicyAddedToExecutionRole04E49125E","roles":[{"Ref":"testServiceRoleF364A929"}]}}}}}}},"Integ":{"id":"Integ","path":"lamevt-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamevt-deployFunction":{"id":"lamevt-deployFunction","path":"lamevt-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-deployFunction/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":events:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":event-bus/default"]]}}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctionServiceRoleDefaultPolicy0F454786","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":"default"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaeventbridgeLambdaFunctionServiceRole0FD85077","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunction/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctioninlinePolicyAddedToExecutionRole0885DF4B9","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"default-event-bus":{"id":"default-event-bus","path":"lamevt-deployFunction/test-lambda-eventbridge/default-event-bus","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"testServiceRole":{"id":"testServiceRole","path":"lamevt-deployFunction/testServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImporttestServiceRole":{"id":"ImporttestServiceRole","path":"lamevt-deployFunction/testServiceRole/ImporttestServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunction/testServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"test":{"id":"test","path":"lamevt-deployFunction/test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"lamevt-deployFunction/test/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-deployFunction/test/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-deployFunction/test/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-deployFunction/test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testServiceRoleF364A929","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-deployFunction/test/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunction/test/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testinlinePolicyAddedToExecutionRole04E49125E","roles":[{"Ref":"testServiceRoleF364A929"}]}}}}}}},"Integ":{"id":"Integ","path":"lamevt-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/lamevt-deployFunctionWithNewEventBus.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/lamevt-deployFunctionWithNewEventBus.assets.json index 186c8f80d..f236aac59 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/lamevt-deployFunctionWithNewEventBus.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/lamevt-deployFunctionWithNewEventBus.assets.json @@ -29,16 +29,16 @@ } } }, - "eaaaf2d5cf64ed0d4937b85b09c35ffbc63dc8928563fe47f59864cfc34dfb68": { + "aa601553c375cfdeed03753cb530ae9330fa65ef51f8fb0ab9547d4640f86a4a": { "displayName": "lamevt-deployFunctionWithNewEventBus Template", "source": { "path": "lamevt-deployFunctionWithNewEventBus.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-d1b21bd2": { + "current_account-current_region-7447fb56": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "eaaaf2d5cf64ed0d4937b85b09c35ffbc63dc8928563fe47f59864cfc34dfb68.json", + "objectKey": "aa601553c375cfdeed03753cb530ae9330fa65ef51f8fb0ab9547d4640f86a4a.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/lamevt-deployFunctionWithNewEventBus.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/lamevt-deployFunctionWithNewEventBus.template.json index cb178c775..872bacb17 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/lamevt-deployFunctionWithNewEventBus.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/lamevt-deployFunctionWithNewEventBus.template.json @@ -164,7 +164,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/manifest.json index 82f3b9093..1bababf3e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/eaaaf2d5cf64ed0d4937b85b09c35ffbc63dc8928563fe47f59864cfc34dfb68.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/aa601553c375cfdeed03753cb530ae9330fa65ef51f8fb0ab9547d4640f86a4a.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/tree.json index bc6abf7e6..83e536c78 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithNewEventBus.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamevt-deployFunctionWithNewEventBus":{"id":"lamevt-deployFunctionWithNewEventBus","path":"lamevt-deployFunctionWithNewEventBus","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaeventbridgeCustomEventBus5F110E81","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctionServiceRoleDefaultPolicy0F454786","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":{"Ref":"testlambdaeventbridgeCustomEventBus5F110E81"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaeventbridgeLambdaFunctionServiceRole0FD85077","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaeventbridgeReplaceDefaultSecurityGroupsecuritygroup11BC24F6","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctioninlinePolicyAddedToExecutionRole0885DF4B9","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"CustomEventBus":{"id":"CustomEventBus","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/CustomEventBus","constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/CustomEventBus/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"lamevtdeployFunctionWithNewEventBustestlambdaeventbridgeCustomEventBus456908C5"}}}}}}},"Vpc":{"id":"Vpc","path":"lamevt-deployFunctionWithNewEventBus/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamevt-deployFunctionWithNewEventBus/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"CLOUDWATCH_EVENTS":{"id":"CLOUDWATCH_EVENTS","path":"lamevt-deployFunctionWithNewEventBus/Vpc/CLOUDWATCH_EVENTS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/CLOUDWATCH_EVENTS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamevtdeployFunctionWithNewEventBusCLOUDWATCHEVENTSsecuritygroup53EAC818","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".events"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamevt-deployFunctionWithNewEventBus/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamevt-deployFunctionWithNewEventBus/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamevt-deployFunctionWithNewEventBus/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamevt-deployFunctionWithNewEventBus/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group":{"id":"lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group","path":"lamevt-deployFunctionWithNewEventBus/lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamevt-deployFunctionWithNewEventBus/lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamevt-deployFunctionWithNewEventBus/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunctionWithNewEventBus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunctionWithNewEventBus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamevt-deployFunctionWithNewEventBus":{"id":"lamevt-deployFunctionWithNewEventBus","path":"lamevt-deployFunctionWithNewEventBus","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaeventbridgeCustomEventBus5F110E81","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctionServiceRoleDefaultPolicy0F454786","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":{"Ref":"testlambdaeventbridgeCustomEventBus5F110E81"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaeventbridgeLambdaFunctionServiceRole0FD85077","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaeventbridgeReplaceDefaultSecurityGroupsecuritygroup11BC24F6","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctioninlinePolicyAddedToExecutionRole0885DF4B9","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"CustomEventBus":{"id":"CustomEventBus","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/CustomEventBus","constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/test-lambda-eventbridge/CustomEventBus/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"lamevtdeployFunctionWithNewEventBustestlambdaeventbridgeCustomEventBus456908C5"}}}}}}},"Vpc":{"id":"Vpc","path":"lamevt-deployFunctionWithNewEventBus/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamevt-deployFunctionWithNewEventBus/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamevt-deployFunctionWithNewEventBus/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"CLOUDWATCH_EVENTS":{"id":"CLOUDWATCH_EVENTS","path":"lamevt-deployFunctionWithNewEventBus/Vpc/CLOUDWATCH_EVENTS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/Vpc/CLOUDWATCH_EVENTS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithNewEventBus/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamevtdeployFunctionWithNewEventBusCLOUDWATCHEVENTSsecuritygroup53EAC818","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".events"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamevt-deployFunctionWithNewEventBus/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamevt-deployFunctionWithNewEventBus/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamevt-deployFunctionWithNewEventBus/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamevt-deployFunctionWithNewEventBus/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group":{"id":"lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group","path":"lamevt-deployFunctionWithNewEventBus/lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithNewEventBus/lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamevt-deployFunctionWithNewEventBus/lamevt-deployFunctionWithNewEventBus-CLOUDWATCH_EVENTS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamevt-deployFunctionWithNewEventBus/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunctionWithNewEventBus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunctionWithNewEventBus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunctionWithNewEventBus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/lamevt-deployFunctionWithVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/lamevt-deployFunctionWithVpc.assets.json index 91062c521..b1adf532c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/lamevt-deployFunctionWithVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/lamevt-deployFunctionWithVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "5f81f466b088bb0e9b094685d6a9f6996e911fe96c4e5c1d1bdb118eb0341fdf": { + "5573e88480999fe0d3afc7a583a9257757e6f1460b1b55218a805244ae46119e": { "displayName": "lamevt-deployFunctionWithVpc Template", "source": { "path": "lamevt-deployFunctionWithVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-4538ba4b": { + "current_account-current_region-f38ed3f6": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "5f81f466b088bb0e9b094685d6a9f6996e911fe96c4e5c1d1bdb118eb0341fdf.json", + "objectKey": "5573e88480999fe0d3afc7a583a9257757e6f1460b1b55218a805244ae46119e.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/lamevt-deployFunctionWithVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/lamevt-deployFunctionWithVpc.template.json index f0c7d82b6..7742a356e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/lamevt-deployFunctionWithVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/lamevt-deployFunctionWithVpc.template.json @@ -176,7 +176,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/manifest.json index 3c514bc36..aa9929d87 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5f81f466b088bb0e9b094685d6a9f6996e911fe96c4e5c1d1bdb118eb0341fdf.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5573e88480999fe0d3afc7a583a9257757e6f1460b1b55218a805244ae46119e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/tree.json index 66f84676a..84aa4fc90 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-deployFunctionWithVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamevt-deployFunctionWithVpc":{"id":"lamevt-deployFunctionWithVpc","path":"lamevt-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":events:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":event-bus/default"]]}}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctionServiceRoleDefaultPolicy0F454786","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":"default"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaeventbridgeLambdaFunctionServiceRole0FD85077","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaeventbridgeReplaceDefaultSecurityGroupsecuritygroup11BC24F6","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctioninlinePolicyAddedToExecutionRole0885DF4B9","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"default-event-bus":{"id":"default-event-bus","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/default-event-bus","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"Vpc":{"id":"Vpc","path":"lamevt-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamevt-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamevt-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"CLOUDWATCH_EVENTS":{"id":"CLOUDWATCH_EVENTS","path":"lamevt-deployFunctionWithVpc/Vpc/CLOUDWATCH_EVENTS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/CLOUDWATCH_EVENTS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamevtdeployFunctionWithVpcCLOUDWATCHEVENTSsecuritygroupE6014B35","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".events"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamevt-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamevt-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamevt-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamevt-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group":{"id":"lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group","path":"lamevt-deployFunctionWithVpc/lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamevt-deployFunctionWithVpc/lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamevt-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamevt-deployFunctionWithVpc":{"id":"lamevt-deployFunctionWithVpc","path":"lamevt-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":events:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":event-bus/default"]]}}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctionServiceRoleDefaultPolicy0F454786","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":"default"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaeventbridgeLambdaFunctionServiceRole0FD85077","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaeventbridgeReplaceDefaultSecurityGroupsecuritygroup11BC24F6","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaeventbridgeLambdaFunctioninlinePolicyAddedToExecutionRole0885DF4B9","roles":[{"Ref":"testlambdaeventbridgeLambdaFunctionServiceRole0FD85077"}]}}}}}}},"default-event-bus":{"id":"default-event-bus","path":"lamevt-deployFunctionWithVpc/test-lambda-eventbridge/default-event-bus","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"Vpc":{"id":"Vpc","path":"lamevt-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamevt-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamevt-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamevt-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamevt-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"CLOUDWATCH_EVENTS":{"id":"CLOUDWATCH_EVENTS","path":"lamevt-deployFunctionWithVpc/Vpc/CLOUDWATCH_EVENTS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/Vpc/CLOUDWATCH_EVENTS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamevt-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamevtdeployFunctionWithVpcCLOUDWATCHEVENTSsecuritygroupE6014B35","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".events"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamevt-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamevt-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamevt-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamevt-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group":{"id":"lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group","path":"lamevt-deployFunctionWithVpc/lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-deployFunctionWithVpc/lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamevt-deployFunctionWithVpc/lamevt-deployFunctionWithVpc-CLOUDWATCH_EVENTS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamevt-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/asset.b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/asset.b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146/index.js new file mode 100755 index 000000000..ccf8fdfa2 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/asset.b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146/index.js @@ -0,0 +1,34 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); +const eventbridge = new aws.EventBridge(); +exports.handler = () => { + const params = { + Entries: [{ + EventBusName: process.env.EVENTBUS_NAME, + Source: 'solutionsconstructs', + DetailType: 'test', + Detail: JSON.stringify({ + Hello: 'World' + }) + }] + }; + eventbridge.putEvents(params, function (err, data) { + if (err) { + throw Error('An error while putting the event.'); + } else { + console.log('Event was successfully sent.'); + } + }); +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/integ.json index 81377c932..3f174b06e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamevt-existingEventBus/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamevtexistingEventBusIntegDefaultTestDeployAssert984FA438" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevt-existingEventBus.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevt-existingEventBus.assets.json index c7c97508b..dad5ced78 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevt-existingEventBus.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevt-existingEventBus.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146": { "displayName": "LambdaFunction/Code", @@ -15,16 +15,16 @@ } } }, - "1cb1e3d7e3b5e292c93f7ecbbf11d5fa6c72462ce792ab92d0070d387312b3a4": { + "83c6cddc92ff97082f256b60ccdae2699d3cdf862515a040e255ec48bcf98e9e": { "displayName": "lamevt-existingEventBus Template", "source": { "path": "lamevt-existingEventBus.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-d99e307b": { + "current_account-current_region-932ced6a": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "1cb1e3d7e3b5e292c93f7ecbbf11d5fa6c72462ce792ab92d0070d387312b3a4.json", + "objectKey": "83c6cddc92ff97082f256b60ccdae2699d3cdf862515a040e255ec48bcf98e9e.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevt-existingEventBus.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevt-existingEventBus.template.json index 1fa1300fb..b6c21959f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevt-existingEventBus.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevt-existingEventBus.template.json @@ -113,7 +113,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevtexistingEventBusIntegDefaultTestDeployAssert984FA438.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevtexistingEventBusIntegDefaultTestDeployAssert984FA438.assets.json index 735872566..b340ebe56 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevtexistingEventBusIntegDefaultTestDeployAssert984FA438.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/lamevtexistingEventBusIntegDefaultTestDeployAssert984FA438.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamevtexistingEventBusIntegDefaultTestDeployAssert984FA438 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/manifest.json index 3e1b2b2f9..dbe8ed9e3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/1cb1e3d7e3b5e292c93f7ecbbf11d5fa6c72462ce792ab92d0070d387312b3a4.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/83c6cddc92ff97082f256b60ccdae2699d3cdf862515a040e255ec48bcf98e9e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -282,15 +282,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "LambdaFunctionLogGroup286B0B9E": [ - { - "type": "aws:cdk:logicalId", - "data": "LambdaFunctionLogGroup286B0B9E", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "lamevt-existingEventBus" @@ -306,57 +297,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -365,7 +347,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -442,7 +427,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -586,7 +571,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -615,7 +603,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -679,7 +670,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -713,7 +707,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -736,7 +733,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -766,6 +766,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/tree.json index de36dd06e..970cc6f57 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingEventBus.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamevt-existingEventBus":{"id":"lamevt-existingEventBus","path":"lamevt-existingEventBus","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-existingEventBus/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-existingEventBus/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-existingEventBus/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-existingEventBus/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingEventBus/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::GetAtt":["existingeventbusA5B80487","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-existingEventBus/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-existingEventBus/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-existingEventBus/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-existingEventBus/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-existingEventBus/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":{"Ref":"existingeventbusA5B80487"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-existingEventBus/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingEventBus/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"existing-event-bus":{"id":"existing-event-bus","path":"lamevt-existingEventBus/existing-event-bus","constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingEventBus/existing-event-bus/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"lamevtexistingEventBusexistingeventbus4F320E96"}}}}},"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-existingEventBus/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.86.0"}},"Integ":{"id":"Integ","path":"lamevt-existingEventBus/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-existingEventBus/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-existingEventBus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-existingEventBus/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-existingEventBus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-existingEventBus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-existingEventBus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-existingEventBus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamevt-existingEventBus":{"id":"lamevt-existingEventBus","path":"lamevt-existingEventBus","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-existingEventBus/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-existingEventBus/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-existingEventBus/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-existingEventBus/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingEventBus/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::GetAtt":["existingeventbusA5B80487","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-existingEventBus/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-existingEventBus/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-existingEventBus/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-existingEventBus/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-existingEventBus/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":{"Ref":"existingeventbusA5B80487"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-existingEventBus/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingEventBus/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"existing-event-bus":{"id":"existing-event-bus","path":"lamevt-existingEventBus/existing-event-bus","constructInfo":{"fqn":"aws-cdk-lib.aws_events.EventBus","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingEventBus/existing-event-bus/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnEventBus","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::EventBus","aws:cdk:cloudformation:props":{"name":"lamevtexistingEventBusexistingeventbus4F320E96"}}}}},"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-existingEventBus/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.95.1"}},"Integ":{"id":"Integ","path":"lamevt-existingEventBus/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-existingEventBus/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-existingEventBus/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-existingEventBus/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-existingEventBus/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-existingEventBus/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-existingEventBus/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-existingEventBus/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/asset.b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/asset.b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146/index.js new file mode 100755 index 000000000..ccf8fdfa2 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/asset.b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146/index.js @@ -0,0 +1,34 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); +const eventbridge = new aws.EventBridge(); +exports.handler = () => { + const params = { + Entries: [{ + EventBusName: process.env.EVENTBUS_NAME, + Source: 'solutionsconstructs', + DetailType: 'test', + Detail: JSON.stringify({ + Hello: 'World' + }) + }] + }; + eventbridge.putEvents(params, function (err, data) { + if (err) { + throw Error('An error while putting the event.'); + } else { + console.log('Event was successfully sent.'); + } + }); +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/integ.json index 411c08d2d..e24faf328 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamevt-existingFunction/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamevtexistingFunctionIntegDefaultTestDeployAssert4E049FF9" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevt-existingFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevt-existingFunction.assets.json index 0f522b1ef..991bba523 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevt-existingFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevt-existingFunction.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146": { "displayName": "LambdaFunction/Code", @@ -15,16 +15,16 @@ } } }, - "0801f5c38a9e15b4036e18c1b9cab87a0089e035a53989d60cf85d190a855b8c": { + "1583a0d4657f02b5be034395a83af2eb023d90b7795a998309cd223bed2dc8d4": { "displayName": "lamevt-existingFunction Template", "source": { "path": "lamevt-existingFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-55f60634": { + "current_account-current_region-2c62ff40": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0801f5c38a9e15b4036e18c1b9cab87a0089e035a53989d60cf85d190a855b8c.json", + "objectKey": "1583a0d4657f02b5be034395a83af2eb023d90b7795a998309cd223bed2dc8d4.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevt-existingFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevt-existingFunction.template.json index b1df6cbe2..9ba4af57f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevt-existingFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevt-existingFunction.template.json @@ -125,7 +125,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevtexistingFunctionIntegDefaultTestDeployAssert4E049FF9.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevtexistingFunctionIntegDefaultTestDeployAssert4E049FF9.assets.json index 6bece5f42..6d59e73c5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevtexistingFunctionIntegDefaultTestDeployAssert4E049FF9.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/lamevtexistingFunctionIntegDefaultTestDeployAssert4E049FF9.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamevtexistingFunctionIntegDefaultTestDeployAssert4E049FF9 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/manifest.json index d16ae6640..5a10fb21c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0801f5c38a9e15b4036e18c1b9cab87a0089e035a53989d60cf85d190a855b8c.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/1583a0d4657f02b5be034395a83af2eb023d90b7795a998309cd223bed2dc8d4.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -276,15 +276,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "LambdaFunctionLogGroup286B0B9E": [ - { - "type": "aws:cdk:logicalId", - "data": "LambdaFunctionLogGroup286B0B9E", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "lamevt-existingFunction" @@ -300,57 +291,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -359,7 +341,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -436,7 +421,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -580,7 +565,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -609,7 +597,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -673,7 +664,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -707,7 +701,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -730,7 +727,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -760,6 +760,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/tree.json index 3a221a2cb..abdfd1ddd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.lamevt-existingFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamevt-existingFunction":{"id":"lamevt-existingFunction","path":"lamevt-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":events:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":event-bus/default"]]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":"default"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-existingFunction/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.86.0"},"children":{"default-event-bus":{"id":"default-event-bus","path":"lamevt-existingFunction/test-lambda-eventbridge/default-event-bus","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}}}},"Integ":{"id":"Integ","path":"lamevt-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamevt-existingFunction":{"id":"lamevt-existingFunction","path":"lamevt-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamevt-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamevt-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamevt-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamevt-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"events:PutEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":events:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":event-bus/default"]]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamevt-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamevt-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamevt-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamevt-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamevt-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b5faf4ff1ebde477120133d1e645d20d7c3d4952b76c3b586100069b94b2f146.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","EVENTBUS_NAME":"default"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamevt-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamevt-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-eventbridge":{"id":"test-lambda-eventbridge","path":"lamevt-existingFunction/test-lambda-eventbridge","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-eventbridge.LambdaToEventbridge","version":"2.95.1"},"children":{"default-event-bus":{"id":"default-event-bus","path":"lamevt-existingFunction/test-lambda-eventbridge/default-event-bus","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}}}},"Integ":{"id":"Integ","path":"lamevt-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamevt-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamevt-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamevt-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamevt-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamevt-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/README.adoc index 702b0feee..8f2155d2a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/README.adoc @@ -62,7 +62,7 @@ import * as s3 from "aws-cdk-lib/aws-s3"; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/asset.d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/asset.d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f/index.js new file mode 100644 index 000000000..297328cfd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/asset.d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Stub Lambda function for testing - ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/integ.json index e317cb9af..27c9d441a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamken-genai-index/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamkengenaiindexIntegDefaultTestDeployAssert33BD740C" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamken-genai-index.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamken-genai-index.assets.json index b4fdfe5bc..385499d98 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamken-genai-index.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamken-genai-index.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "displayName": "lamken-genai-index/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", @@ -29,16 +29,16 @@ } } }, - "4108d8166a7bbf67d291f05609edffb081c00a4d8cf51820dfc76f3bc4d475e1": { + "850b651248b7d50b3efca559b4e36092de243212c737715e02a959d93a81b3db": { "displayName": "lamken-genai-index Template", "source": { "path": "lamken-genai-index.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-3815920e": { + "current_account-current_region-87416a89": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4108d8166a7bbf67d291f05609edffb081c00a4d8cf51820dfc76f3bc4d475e1.json", + "objectKey": "850b651248b7d50b3efca559b4e36092de243212c737715e02a959d93a81b3db.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamken-genai-index.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamken-genai-index.template.json index 89f7cc912..9d9a7aa29 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamken-genai-index.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamken-genai-index.template.json @@ -477,7 +477,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamkengenaiindexIntegDefaultTestDeployAssert33BD740C.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamkengenaiindexIntegDefaultTestDeployAssert33BD740C.assets.json index a218fd84c..d9bd9d355 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamkengenaiindexIntegDefaultTestDeployAssert33BD740C.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/lamkengenaiindexIntegDefaultTestDeployAssert33BD740C.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamkengenaiindexIntegDefaultTestDeployAssert33BD740C Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/manifest.json index eab89ee6c..a8bec9303 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4108d8166a7bbf67d291f05609edffb081c00a4d8cf51820dfc76f3bc4d475e1.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/850b651248b7d50b3efca559b4e36092de243212c737715e02a959d93a81b3db.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -502,57 +502,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -561,7 +552,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -638,7 +632,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -782,7 +776,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -811,7 +808,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -875,7 +875,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -909,7 +912,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -932,7 +938,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -962,6 +971,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/tree.json index 99f8b9971..11fc37f02 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-genai-index.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamken-genai-index":{"id":"lamken-genai-index","path":"lamken-genai-index","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"contentBucketLog":{"id":"contentBucketLog","path":"lamken-genai-index/contentBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/contentBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-genai-index/contentBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/contentBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"contentBucketLog5B9803A6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-genai-index/contentBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-genai-index/contentBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamken-genai-index/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lamken-genai-index/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lamken-genai-index/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lamken-genai-index/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"contentBucket":{"id":"contentBucket","path":"lamken-genai-index/contentBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/contentBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"contentBucketLog5B9803A6"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-genai-index/contentBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/contentBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"contentBucket356CF7A5"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-genai-index/contentBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-genai-index/contentBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"genai-index":{"id":"genai-index","path":"lamken-genai-index/genai-index","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kendra.LambdaToKendra","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamken-genai-index/genai-index/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamken-genai-index/genai-index/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamken-genai-index/genai-index/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamken-genai-index/genai-index/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamken-genai-index/genai-index/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamken-genai-index/genai-index/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KENDRA_INDEX_ID":{"Fn::GetAtt":["genaiindexkendraindexgenaiindex5FFB72B4","Id"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["genaiindexLambdaFunctionServiceRoleE929EAD8","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"genaiindexLambdaFunctioninlinePolicyAddedToExecutionRole02296A6AC","roles":[{"Ref":"genaiindexLambdaFunctionServiceRoleE929EAD8"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kendra:BatchGet*","kendra:Describe*","kendra:Get*","kendra:List*","kendra:Query","kendra:Retrieve"],"Effect":"Allow","Resource":{"Fn::GetAtt":["genaiindexkendraindexgenaiindex5FFB72B4","Arn"]}}],"Version":"2012-10-17"},"policyName":"genaiindexLambdaFunctioninlinePolicyAddedToExecutionRole1B78E0048","roles":[{"Ref":"genaiindexLambdaFunctionServiceRoleE929EAD8"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"kendra:SubmitFeedback","Effect":"Allow","Resource":{"Fn::GetAtt":["genaiindexkendraindexgenaiindex5FFB72B4","Arn"]}}],"Version":"2012-10-17"},"policyName":"genaiindexLambdaFunctioninlinePolicyAddedToExecutionRole2D07C016D","roles":[{"Ref":"genaiindexLambdaFunctionServiceRoleE929EAD8"}]}}}}}}},"kendra-index-role-genai-index":{"id":"kendra-index-role-genai-index","path":"lamken-genai-index/genai-index/kendra-index-role-genai-index","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importkendra-index-role-genai-index":{"id":"Importkendra-index-role-genai-index","path":"lamken-genai-index/genai-index/kendra-index-role-genai-index/Importkendra-index-role-genai-index","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/kendra-index-role-genai-index/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Allow Kendra index to write CloudWatch Logs","policies":[{"policyName":"AllowLogging","policyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Condition":{"StringEquals":{"cloudwatch:namespace":"AWS/Kendra"}},"Effect":"Allow","Resource":"*"},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":"logs:DescribeLogGroups","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":["logs:CreateLogStream","logs:DescribeLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*:log-stream:*"]]}}],"Version":"2012-10-17"}}]}}}}},"kendra-index-genai-index":{"id":"kendra-index-genai-index","path":"lamken-genai-index/genai-index/kendra-index-genai-index","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnIndex","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::Index","aws:cdk:cloudformation:props":{"edition":"GEN_AI_ENTERPRISE_EDITION","name":"genai-index","roleArn":{"Fn::GetAtt":["genaiindexkendraindexrolegenaiindex2848B249","Arn"]}}}},"data-source-role-genai-index0":{"id":"data-source-role-genai-index0","path":"lamken-genai-index/genai-index/data-source-role-genai-index0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-genai-index0":{"id":"Importdata-source-role-genai-index0","path":"lamken-genai-index/genai-index/data-source-role-genai-index0/Importdata-source-role-genai-index0","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/data-source-role-genai-index0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"contentBucket356CF7A5"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"contentBucket356CF7A5"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["genaiindexkendraindexgenaiindex5FFB72B4","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-genai-index0":{"id":"data-source-genai-index0","path":"lamken-genai-index/genai-index/data-source-genai-index0","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"contentBucket356CF7A5"}}},"indexId":{"Ref":"genaiindexkendraindexgenaiindex5FFB72B4"},"name":{"Fn::Join":["",["s3-datasourcegenai-index0-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["genaiindexdatasourcerolegenaiindex0F97D641C","Arn"]},"type":"S3"}}}}},"Integ":{"id":"Integ","path":"lamken-genai-index/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamken-genai-index/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamken-genai-index/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamken-genai-index/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-genai-index/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-genai-index/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-genai-index/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-genai-index/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamken-genai-index":{"id":"lamken-genai-index","path":"lamken-genai-index","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"contentBucketLog":{"id":"contentBucketLog","path":"lamken-genai-index/contentBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/contentBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-genai-index/contentBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/contentBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"contentBucketLog5B9803A6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-genai-index/contentBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-genai-index/contentBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamken-genai-index/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamken-genai-index/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamken-genai-index/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamken-genai-index/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"contentBucket":{"id":"contentBucket","path":"lamken-genai-index/contentBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/contentBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"contentBucketLog5B9803A6"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-genai-index/contentBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/contentBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"contentBucket356CF7A5"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-genai-index/contentBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-genai-index/contentBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"genai-index":{"id":"genai-index","path":"lamken-genai-index/genai-index","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kendra.LambdaToKendra","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamken-genai-index/genai-index/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamken-genai-index/genai-index/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamken-genai-index/genai-index/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamken-genai-index/genai-index/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamken-genai-index/genai-index/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamken-genai-index/genai-index/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KENDRA_INDEX_ID":{"Fn::GetAtt":["genaiindexkendraindexgenaiindex5FFB72B4","Id"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["genaiindexLambdaFunctionServiceRoleE929EAD8","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"genaiindexLambdaFunctioninlinePolicyAddedToExecutionRole02296A6AC","roles":[{"Ref":"genaiindexLambdaFunctionServiceRoleE929EAD8"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kendra:BatchGet*","kendra:Describe*","kendra:Get*","kendra:List*","kendra:Query","kendra:Retrieve"],"Effect":"Allow","Resource":{"Fn::GetAtt":["genaiindexkendraindexgenaiindex5FFB72B4","Arn"]}}],"Version":"2012-10-17"},"policyName":"genaiindexLambdaFunctioninlinePolicyAddedToExecutionRole1B78E0048","roles":[{"Ref":"genaiindexLambdaFunctionServiceRoleE929EAD8"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"kendra:SubmitFeedback","Effect":"Allow","Resource":{"Fn::GetAtt":["genaiindexkendraindexgenaiindex5FFB72B4","Arn"]}}],"Version":"2012-10-17"},"policyName":"genaiindexLambdaFunctioninlinePolicyAddedToExecutionRole2D07C016D","roles":[{"Ref":"genaiindexLambdaFunctionServiceRoleE929EAD8"}]}}}}}}},"kendra-index-role-genai-index":{"id":"kendra-index-role-genai-index","path":"lamken-genai-index/genai-index/kendra-index-role-genai-index","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importkendra-index-role-genai-index":{"id":"Importkendra-index-role-genai-index","path":"lamken-genai-index/genai-index/kendra-index-role-genai-index/Importkendra-index-role-genai-index","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/kendra-index-role-genai-index/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Allow Kendra index to write CloudWatch Logs","policies":[{"policyName":"AllowLogging","policyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Condition":{"StringEquals":{"cloudwatch:namespace":"AWS/Kendra"}},"Effect":"Allow","Resource":"*"},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":"logs:DescribeLogGroups","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":["logs:CreateLogStream","logs:DescribeLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*:log-stream:*"]]}}],"Version":"2012-10-17"}}]}}}}},"kendra-index-genai-index":{"id":"kendra-index-genai-index","path":"lamken-genai-index/genai-index/kendra-index-genai-index","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnIndex","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::Index","aws:cdk:cloudformation:props":{"edition":"GEN_AI_ENTERPRISE_EDITION","name":"genai-index","roleArn":{"Fn::GetAtt":["genaiindexkendraindexrolegenaiindex2848B249","Arn"]}}}},"data-source-role-genai-index0":{"id":"data-source-role-genai-index0","path":"lamken-genai-index/genai-index/data-source-role-genai-index0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-genai-index0":{"id":"Importdata-source-role-genai-index0","path":"lamken-genai-index/genai-index/data-source-role-genai-index0/Importdata-source-role-genai-index0","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-genai-index/genai-index/data-source-role-genai-index0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"contentBucket356CF7A5"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"contentBucket356CF7A5"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["genaiindexkendraindexgenaiindex5FFB72B4","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-genai-index0":{"id":"data-source-genai-index0","path":"lamken-genai-index/genai-index/data-source-genai-index0","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"contentBucket356CF7A5"}}},"indexId":{"Ref":"genaiindexkendraindexgenaiindex5FFB72B4"},"name":{"Fn::Join":["",["s3-datasourcegenai-index0-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["genaiindexdatasourcerolegenaiindex0F97D641C","Arn"]},"type":"S3"}}}}},"Integ":{"id":"Integ","path":"lamken-genai-index/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamken-genai-index/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamken-genai-index/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamken-genai-index/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-genai-index/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-genai-index/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-genai-index/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-genai-index/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/asset.d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/asset.d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f/index.js new file mode 100644 index 000000000..297328cfd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/asset.d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Stub Lambda function for testing - ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/integ.json index bfe7f7931..68f9bbd11 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamken-minimal-arguments/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamkenminimalargumentsIntegDefaultTestDeployAssert70C0F38A" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamken-minimal-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamken-minimal-arguments.assets.json index 5e65b1de7..098536e47 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamken-minimal-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamken-minimal-arguments.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "displayName": "lamken-minimal-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", @@ -29,16 +29,16 @@ } } }, - "70a1f0d5bf411372b49bdb635968f050b4df429ed2ff96ee22bb424cbb10e84b": { + "00f5f1b8246ff6ac11cc3af10ec580dff99730cdcdbb3dc2e270b0651a22d8f5": { "displayName": "lamken-minimal-arguments Template", "source": { "path": "lamken-minimal-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-ae00c0fc": { + "current_account-current_region-82817528": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "70a1f0d5bf411372b49bdb635968f050b4df429ed2ff96ee22bb424cbb10e84b.json", + "objectKey": "00f5f1b8246ff6ac11cc3af10ec580dff99730cdcdbb3dc2e270b0651a22d8f5.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamken-minimal-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamken-minimal-arguments.template.json index ad015cdc3..9bba8343d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamken-minimal-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamken-minimal-arguments.template.json @@ -477,7 +477,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamkenminimalargumentsIntegDefaultTestDeployAssert70C0F38A.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamkenminimalargumentsIntegDefaultTestDeployAssert70C0F38A.assets.json index 2df080949..1a3cf588a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamkenminimalargumentsIntegDefaultTestDeployAssert70C0F38A.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/lamkenminimalargumentsIntegDefaultTestDeployAssert70C0F38A.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamkenminimalargumentsIntegDefaultTestDeployAssert70C0F38A Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/manifest.json index 2798dd430..2f62bf393 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/70a1f0d5bf411372b49bdb635968f050b4df429ed2ff96ee22bb424cbb10e84b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/00f5f1b8246ff6ac11cc3af10ec580dff99730cdcdbb3dc2e270b0651a22d8f5.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -502,57 +502,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -561,7 +552,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -638,7 +632,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -782,7 +776,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -811,7 +808,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -875,7 +875,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -909,7 +912,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -932,7 +938,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -962,6 +971,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/tree.json index 09dc1b193..67ae956a0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-minimal-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamken-minimal-arguments":{"id":"lamken-minimal-arguments","path":"lamken-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"contentBucketLog":{"id":"contentBucketLog","path":"lamken-minimal-arguments/contentBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/contentBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-minimal-arguments/contentBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/contentBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"contentBucketLog5B9803A6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-minimal-arguments/contentBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-minimal-arguments/contentBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamken-minimal-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lamken-minimal-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lamken-minimal-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lamken-minimal-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"contentBucket":{"id":"contentBucket","path":"lamken-minimal-arguments/contentBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/contentBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"contentBucketLog5B9803A6"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-minimal-arguments/contentBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/contentBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"contentBucket356CF7A5"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-minimal-arguments/contentBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-minimal-arguments/contentBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"minimal-arguments":{"id":"minimal-arguments","path":"lamken-minimal-arguments/minimal-arguments","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kendra.LambdaToKendra","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KENDRA_INDEX_ID":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Id"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["minimalargumentsLambdaFunctionServiceRole73B77FF7","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole0F2C1CE4B","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kendra:BatchGet*","kendra:Describe*","kendra:Get*","kendra:List*","kendra:Query","kendra:Retrieve"],"Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole13B87ED37","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"kendra:SubmitFeedback","Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole2FA23AF8F","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}}}},"kendra-index-role-minimal-arguments":{"id":"kendra-index-role-minimal-arguments","path":"lamken-minimal-arguments/minimal-arguments/kendra-index-role-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importkendra-index-role-minimal-arguments":{"id":"Importkendra-index-role-minimal-arguments","path":"lamken-minimal-arguments/minimal-arguments/kendra-index-role-minimal-arguments/Importkendra-index-role-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/kendra-index-role-minimal-arguments/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Allow Kendra index to write CloudWatch Logs","policies":[{"policyName":"AllowLogging","policyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Condition":{"StringEquals":{"cloudwatch:namespace":"AWS/Kendra"}},"Effect":"Allow","Resource":"*"},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":"logs:DescribeLogGroups","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":["logs:CreateLogStream","logs:DescribeLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*:log-stream:*"]]}}],"Version":"2012-10-17"}}]}}}}},"kendra-index-minimal-arguments":{"id":"kendra-index-minimal-arguments","path":"lamken-minimal-arguments/minimal-arguments/kendra-index-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnIndex","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::Index","aws:cdk:cloudformation:props":{"edition":"DEVELOPER_EDITION","name":{"Fn::Join":["",["KendraIndexminimal-arguments-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["minimalargumentskendraindexroleminimalargumentsB1DBDF7D","Arn"]}}}},"data-source-role-minimal-arguments0":{"id":"data-source-role-minimal-arguments0","path":"lamken-minimal-arguments/minimal-arguments/data-source-role-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-minimal-arguments0":{"id":"Importdata-source-role-minimal-arguments0","path":"lamken-minimal-arguments/minimal-arguments/data-source-role-minimal-arguments0/Importdata-source-role-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/data-source-role-minimal-arguments0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"contentBucket356CF7A5"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"contentBucket356CF7A5"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-minimal-arguments0":{"id":"data-source-minimal-arguments0","path":"lamken-minimal-arguments/minimal-arguments/data-source-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"contentBucket356CF7A5"}}},"indexId":{"Ref":"minimalargumentskendraindexminimalarguments5CBDD236"},"name":{"Fn::Join":["",["s3-datasourceminimal-arguments0-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["minimalargumentsdatasourceroleminimalarguments00EAC5006","Arn"]},"type":"S3"}}}}},"Integ":{"id":"Integ","path":"lamken-minimal-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamken-minimal-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamken-minimal-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamken-minimal-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-minimal-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-minimal-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-minimal-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-minimal-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamken-minimal-arguments":{"id":"lamken-minimal-arguments","path":"lamken-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"contentBucketLog":{"id":"contentBucketLog","path":"lamken-minimal-arguments/contentBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/contentBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-minimal-arguments/contentBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/contentBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"contentBucketLog5B9803A6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["contentBucketLog5B9803A6","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-minimal-arguments/contentBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-minimal-arguments/contentBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamken-minimal-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamken-minimal-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamken-minimal-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamken-minimal-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"contentBucket":{"id":"contentBucket","path":"lamken-minimal-arguments/contentBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/contentBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"contentBucketLog5B9803A6"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-minimal-arguments/contentBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/contentBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"contentBucket356CF7A5"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["contentBucket356CF7A5","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-minimal-arguments/contentBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-minimal-arguments/contentBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"minimal-arguments":{"id":"minimal-arguments","path":"lamken-minimal-arguments/minimal-arguments","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kendra.LambdaToKendra","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KENDRA_INDEX_ID":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Id"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["minimalargumentsLambdaFunctionServiceRole73B77FF7","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole0F2C1CE4B","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kendra:BatchGet*","kendra:Describe*","kendra:Get*","kendra:List*","kendra:Query","kendra:Retrieve"],"Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole13B87ED37","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"kendra:SubmitFeedback","Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole2FA23AF8F","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}}}},"kendra-index-role-minimal-arguments":{"id":"kendra-index-role-minimal-arguments","path":"lamken-minimal-arguments/minimal-arguments/kendra-index-role-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importkendra-index-role-minimal-arguments":{"id":"Importkendra-index-role-minimal-arguments","path":"lamken-minimal-arguments/minimal-arguments/kendra-index-role-minimal-arguments/Importkendra-index-role-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/kendra-index-role-minimal-arguments/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Allow Kendra index to write CloudWatch Logs","policies":[{"policyName":"AllowLogging","policyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Condition":{"StringEquals":{"cloudwatch:namespace":"AWS/Kendra"}},"Effect":"Allow","Resource":"*"},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":"logs:DescribeLogGroups","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":["logs:CreateLogStream","logs:DescribeLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*:log-stream:*"]]}}],"Version":"2012-10-17"}}]}}}}},"kendra-index-minimal-arguments":{"id":"kendra-index-minimal-arguments","path":"lamken-minimal-arguments/minimal-arguments/kendra-index-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnIndex","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::Index","aws:cdk:cloudformation:props":{"edition":"DEVELOPER_EDITION","name":{"Fn::Join":["",["KendraIndexminimal-arguments-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["minimalargumentskendraindexroleminimalargumentsB1DBDF7D","Arn"]}}}},"data-source-role-minimal-arguments0":{"id":"data-source-role-minimal-arguments0","path":"lamken-minimal-arguments/minimal-arguments/data-source-role-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-minimal-arguments0":{"id":"Importdata-source-role-minimal-arguments0","path":"lamken-minimal-arguments/minimal-arguments/data-source-role-minimal-arguments0/Importdata-source-role-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-minimal-arguments/minimal-arguments/data-source-role-minimal-arguments0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"contentBucket356CF7A5"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"contentBucket356CF7A5"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-minimal-arguments0":{"id":"data-source-minimal-arguments0","path":"lamken-minimal-arguments/minimal-arguments/data-source-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"contentBucket356CF7A5"}}},"indexId":{"Ref":"minimalargumentskendraindexminimalarguments5CBDD236"},"name":{"Fn::Join":["",["s3-datasourceminimal-arguments0-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["minimalargumentsdatasourceroleminimalarguments00EAC5006","Arn"]},"type":"S3"}}}}},"Integ":{"id":"Integ","path":"lamken-minimal-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamken-minimal-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamken-minimal-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamken-minimal-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-minimal-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-minimal-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-minimal-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-minimal-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/asset.d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/asset.d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f/index.js new file mode 100644 index 000000000..297328cfd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/asset.d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Stub Lambda function for testing - ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/integ.json index 6cfcc96af..a2774ab2a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamken-multiple-sources/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamkenmultiplesourcesIntegDefaultTestDeployAssertDE50B828" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamken-multiple-sources.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamken-multiple-sources.assets.json index ce1af1404..7403deab6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamken-multiple-sources.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamken-multiple-sources.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "displayName": "lamken-multiple-sources/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", @@ -29,16 +29,16 @@ } } }, - "a0ad83d1949c0b2eee4bf8306e902ed60a3564f05ff2a19689bb382487b7b2bd": { + "866300829699e3fa3450635364258cbb9cfc63dd4fdf523160b069ce545ae3f3": { "displayName": "lamken-multiple-sources Template", "source": { "path": "lamken-multiple-sources.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-d0df620e": { + "current_account-current_region-0da1bf39": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a0ad83d1949c0b2eee4bf8306e902ed60a3564f05ff2a19689bb382487b7b2bd.json", + "objectKey": "866300829699e3fa3450635364258cbb9cfc63dd4fdf523160b069ce545ae3f3.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamken-multiple-sources.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamken-multiple-sources.template.json index 54960cc08..989200c4d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamken-multiple-sources.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamken-multiple-sources.template.json @@ -805,7 +805,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamkenmultiplesourcesIntegDefaultTestDeployAssertDE50B828.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamkenmultiplesourcesIntegDefaultTestDeployAssertDE50B828.assets.json index c755bcafd..f741bdd3b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamkenmultiplesourcesIntegDefaultTestDeployAssertDE50B828.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/lamkenmultiplesourcesIntegDefaultTestDeployAssertDE50B828.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamkenmultiplesourcesIntegDefaultTestDeployAssertDE50B828 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/manifest.json index c74417ee3..c52f8ab60 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a0ad83d1949c0b2eee4bf8306e902ed60a3564f05ff2a19689bb382487b7b2bd.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/866300829699e3fa3450635364258cbb9cfc63dd4fdf523160b069ce545ae3f3.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -651,57 +651,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -710,7 +701,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -787,7 +781,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -931,7 +925,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -960,7 +957,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1024,7 +1024,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1058,7 +1061,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1081,7 +1087,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1111,6 +1120,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/tree.json index 29b09152a..cbdd8fc5b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-multiple-sources.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamken-multiple-sources":{"id":"lamken-multiple-sources","path":"lamken-multiple-sources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"lamken-multiple-sources/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-multiple-sources/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-multiple-sources/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamken-multiple-sources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lamken-multiple-sources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lamken-multiple-sources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lamken-multiple-sources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"lamken-multiple-sources/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-multiple-sources/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-multiple-sources/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"secondScrapBucketLog":{"id":"secondScrapBucketLog","path":"lamken-multiple-sources/secondScrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/secondScrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-multiple-sources/secondScrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/secondScrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"secondScrapBucketLog8EF53038"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-multiple-sources/secondScrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/secondScrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"secondScrapBucket":{"id":"secondScrapBucket","path":"lamken-multiple-sources/secondScrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/secondScrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"secondScrapBucketLog8EF53038"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-multiple-sources/secondScrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/secondScrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"secondScrapBucketFC127414"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-multiple-sources/secondScrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/secondScrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"existingRole":{"id":"existingRole","path":"lamken-multiple-sources/existingRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportexistingRole":{"id":"ImportexistingRole","path":"lamken-multiple-sources/existingRole/ImportexistingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/existingRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"multiple-sources":{"id":"multiple-sources","path":"lamken-multiple-sources/multiple-sources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kendra.LambdaToKendra","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamken-multiple-sources/multiple-sources/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamken-multiple-sources/multiple-sources/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamken-multiple-sources/multiple-sources/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KENDRA_INDEX_ID":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Id"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["multiplesourcesLambdaFunctionServiceRole66EC8973","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"multiplesourcesLambdaFunctioninlinePolicyAddedToExecutionRole02D707C8B","roles":[{"Ref":"multiplesourcesLambdaFunctionServiceRole66EC8973"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kendra:BatchGet*","kendra:Describe*","kendra:Get*","kendra:List*","kendra:Query","kendra:Retrieve"],"Effect":"Allow","Resource":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Arn"]}}],"Version":"2012-10-17"},"policyName":"multiplesourcesLambdaFunctioninlinePolicyAddedToExecutionRole1F955B6B2","roles":[{"Ref":"multiplesourcesLambdaFunctionServiceRole66EC8973"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"kendra:SubmitFeedback","Effect":"Allow","Resource":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Arn"]}}],"Version":"2012-10-17"},"policyName":"multiplesourcesLambdaFunctioninlinePolicyAddedToExecutionRole23B3A0248","roles":[{"Ref":"multiplesourcesLambdaFunctionServiceRole66EC8973"}]}}}}}}},"kendra-index-role-multiple-sources":{"id":"kendra-index-role-multiple-sources","path":"lamken-multiple-sources/multiple-sources/kendra-index-role-multiple-sources","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importkendra-index-role-multiple-sources":{"id":"Importkendra-index-role-multiple-sources","path":"lamken-multiple-sources/multiple-sources/kendra-index-role-multiple-sources/Importkendra-index-role-multiple-sources","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/kendra-index-role-multiple-sources/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Allow Kendra index to write CloudWatch Logs","policies":[{"policyName":"AllowLogging","policyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Condition":{"StringEquals":{"cloudwatch:namespace":"AWS/Kendra"}},"Effect":"Allow","Resource":"*"},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":"logs:DescribeLogGroups","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":["logs:CreateLogStream","logs:DescribeLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*:log-stream:*"]]}}],"Version":"2012-10-17"}}]}}}}},"kendra-index-multiple-sources":{"id":"kendra-index-multiple-sources","path":"lamken-multiple-sources/multiple-sources/kendra-index-multiple-sources","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnIndex","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::Index","aws:cdk:cloudformation:props":{"edition":"DEVELOPER_EDITION","name":{"Fn::Join":["",["KendraIndexmultiple-sources-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["multiplesourceskendraindexrolemultiplesourcesAB2C8779","Arn"]}}}},"data-source-role-multiple-sources0":{"id":"data-source-role-multiple-sources0","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-multiple-sources0":{"id":"Importdata-source-role-multiple-sources0","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources0/Importdata-source-role-multiple-sources0","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"scrapBucketB11863B7"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"scrapBucketB11863B7"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-multiple-sources0":{"id":"data-source-multiple-sources0","path":"lamken-multiple-sources/multiple-sources/data-source-multiple-sources0","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"scrapBucketB11863B7"}}},"indexId":{"Ref":"multiplesourceskendraindexmultiplesourcesD8FB1621"},"name":{"Fn::Join":["",["s3-datasourcemultiple-sources0-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["multiplesourcesdatasourcerolemultiplesources01396504E","Arn"]},"type":"S3"}}},"data-source-role-multiple-sources1":{"id":"data-source-role-multiple-sources1","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-multiple-sources1":{"id":"Importdata-source-role-multiple-sources1","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources1/Importdata-source-role-multiple-sources1","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"secondScrapBucketFC127414"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"secondScrapBucketFC127414"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-multiple-sources1":{"id":"data-source-multiple-sources1","path":"lamken-multiple-sources/multiple-sources/data-source-multiple-sources1","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"secondScrapBucketFC127414"}}},"indexId":{"Ref":"multiplesourceskendraindexmultiplesourcesD8FB1621"},"name":{"Fn::Join":["",["s3-datasourcemultiple-sources1-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["multiplesourcesdatasourcerolemultiplesources16A50E028","Arn"]},"type":"S3"}}},"kendra-data-source-multiple-sources2":{"id":"kendra-data-source-multiple-sources2","path":"lamken-multiple-sources/multiple-sources/kendra-data-source-multiple-sources2","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"webCrawlerConfiguration":{"urls":{"seedUrlConfiguration":{"seedUrls":["https://aws.amazon.com"]}},"crawlDepth":1}},"indexId":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Id"]},"name":"web-source","roleArn":{"Fn::GetAtt":["existingRole3E995BBA","Arn"]},"type":"WEBCRAWLER"}}}}},"Integ":{"id":"Integ","path":"lamken-multiple-sources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamken-multiple-sources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamken-multiple-sources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-multiple-sources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-multiple-sources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-multiple-sources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-multiple-sources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamken-multiple-sources":{"id":"lamken-multiple-sources","path":"lamken-multiple-sources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"lamken-multiple-sources/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-multiple-sources/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-multiple-sources/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamken-multiple-sources/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamken-multiple-sources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamken-multiple-sources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamken-multiple-sources/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"lamken-multiple-sources/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-multiple-sources/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-multiple-sources/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"secondScrapBucketLog":{"id":"secondScrapBucketLog","path":"lamken-multiple-sources/secondScrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/secondScrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-multiple-sources/secondScrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/secondScrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"secondScrapBucketLog8EF53038"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketLog8EF53038","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-multiple-sources/secondScrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/secondScrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"secondScrapBucket":{"id":"secondScrapBucket","path":"lamken-multiple-sources/secondScrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/secondScrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"secondScrapBucketLog8EF53038"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-multiple-sources/secondScrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/secondScrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"secondScrapBucketFC127414"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["secondScrapBucketFC127414","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-multiple-sources/secondScrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/secondScrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"existingRole":{"id":"existingRole","path":"lamken-multiple-sources/existingRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportexistingRole":{"id":"ImportexistingRole","path":"lamken-multiple-sources/existingRole/ImportexistingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/existingRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"multiple-sources":{"id":"multiple-sources","path":"lamken-multiple-sources/multiple-sources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kendra.LambdaToKendra","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamken-multiple-sources/multiple-sources/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamken-multiple-sources/multiple-sources/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamken-multiple-sources/multiple-sources/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KENDRA_INDEX_ID":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Id"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["multiplesourcesLambdaFunctionServiceRole66EC8973","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"multiplesourcesLambdaFunctioninlinePolicyAddedToExecutionRole02D707C8B","roles":[{"Ref":"multiplesourcesLambdaFunctionServiceRole66EC8973"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kendra:BatchGet*","kendra:Describe*","kendra:Get*","kendra:List*","kendra:Query","kendra:Retrieve"],"Effect":"Allow","Resource":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Arn"]}}],"Version":"2012-10-17"},"policyName":"multiplesourcesLambdaFunctioninlinePolicyAddedToExecutionRole1F955B6B2","roles":[{"Ref":"multiplesourcesLambdaFunctionServiceRole66EC8973"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"kendra:SubmitFeedback","Effect":"Allow","Resource":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Arn"]}}],"Version":"2012-10-17"},"policyName":"multiplesourcesLambdaFunctioninlinePolicyAddedToExecutionRole23B3A0248","roles":[{"Ref":"multiplesourcesLambdaFunctionServiceRole66EC8973"}]}}}}}}},"kendra-index-role-multiple-sources":{"id":"kendra-index-role-multiple-sources","path":"lamken-multiple-sources/multiple-sources/kendra-index-role-multiple-sources","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importkendra-index-role-multiple-sources":{"id":"Importkendra-index-role-multiple-sources","path":"lamken-multiple-sources/multiple-sources/kendra-index-role-multiple-sources/Importkendra-index-role-multiple-sources","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/kendra-index-role-multiple-sources/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Allow Kendra index to write CloudWatch Logs","policies":[{"policyName":"AllowLogging","policyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Condition":{"StringEquals":{"cloudwatch:namespace":"AWS/Kendra"}},"Effect":"Allow","Resource":"*"},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":"logs:DescribeLogGroups","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":["logs:CreateLogStream","logs:DescribeLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*:log-stream:*"]]}}],"Version":"2012-10-17"}}]}}}}},"kendra-index-multiple-sources":{"id":"kendra-index-multiple-sources","path":"lamken-multiple-sources/multiple-sources/kendra-index-multiple-sources","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnIndex","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::Index","aws:cdk:cloudformation:props":{"edition":"DEVELOPER_EDITION","name":{"Fn::Join":["",["KendraIndexmultiple-sources-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["multiplesourceskendraindexrolemultiplesourcesAB2C8779","Arn"]}}}},"data-source-role-multiple-sources0":{"id":"data-source-role-multiple-sources0","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-multiple-sources0":{"id":"Importdata-source-role-multiple-sources0","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources0/Importdata-source-role-multiple-sources0","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"scrapBucketB11863B7"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"scrapBucketB11863B7"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-multiple-sources0":{"id":"data-source-multiple-sources0","path":"lamken-multiple-sources/multiple-sources/data-source-multiple-sources0","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"scrapBucketB11863B7"}}},"indexId":{"Ref":"multiplesourceskendraindexmultiplesourcesD8FB1621"},"name":{"Fn::Join":["",["s3-datasourcemultiple-sources0-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["multiplesourcesdatasourcerolemultiplesources01396504E","Arn"]},"type":"S3"}}},"data-source-role-multiple-sources1":{"id":"data-source-role-multiple-sources1","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-multiple-sources1":{"id":"Importdata-source-role-multiple-sources1","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources1/Importdata-source-role-multiple-sources1","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-multiple-sources/multiple-sources/data-source-role-multiple-sources1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"secondScrapBucketFC127414"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"secondScrapBucketFC127414"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-multiple-sources1":{"id":"data-source-multiple-sources1","path":"lamken-multiple-sources/multiple-sources/data-source-multiple-sources1","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"secondScrapBucketFC127414"}}},"indexId":{"Ref":"multiplesourceskendraindexmultiplesourcesD8FB1621"},"name":{"Fn::Join":["",["s3-datasourcemultiple-sources1-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["multiplesourcesdatasourcerolemultiplesources16A50E028","Arn"]},"type":"S3"}}},"kendra-data-source-multiple-sources2":{"id":"kendra-data-source-multiple-sources2","path":"lamken-multiple-sources/multiple-sources/kendra-data-source-multiple-sources2","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"webCrawlerConfiguration":{"urls":{"seedUrlConfiguration":{"seedUrls":["https://aws.amazon.com"]}},"crawlDepth":1}},"indexId":{"Fn::GetAtt":["multiplesourceskendraindexmultiplesourcesD8FB1621","Id"]},"name":"web-source","roleArn":{"Fn::GetAtt":["existingRole3E995BBA","Arn"]},"type":"WEBCRAWLER"}}}}},"Integ":{"id":"Integ","path":"lamken-multiple-sources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamken-multiple-sources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamken-multiple-sources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamken-multiple-sources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-multiple-sources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-multiple-sources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-multiple-sources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-multiple-sources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/lamken-with-vpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/lamken-with-vpc.assets.json index 456a8c172..cf34bc5b6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/lamken-with-vpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/lamken-with-vpc.assets.json @@ -43,16 +43,16 @@ } } }, - "6781d815283fdc56d81d1b381116a7c4c218d0564d1fefda7a8ee3557af05ad2": { + "7f442d6133132374824c1ac32ed66e2d0faca49dc32acefa52a12d103c5f9ab2": { "displayName": "lamken-with-vpc Template", "source": { "path": "lamken-with-vpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-5a280982": { + "current_account-current_region-a669e6cc": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "6781d815283fdc56d81d1b381116a7c4c218d0564d1fefda7a8ee3557af05ad2.json", + "objectKey": "7f442d6133132374824c1ac32ed66e2d0faca49dc32acefa52a12d103c5f9ab2.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/lamken-with-vpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/lamken-with-vpc.template.json index 5872c6ab6..0563e0732 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/lamken-with-vpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/lamken-with-vpc.template.json @@ -544,7 +544,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/manifest.json index dfb1b0277..64b1e43ae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6781d815283fdc56d81d1b381116a7c4c218d0564d1fefda7a8ee3557af05ad2.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7f442d6133132374824c1ac32ed66e2d0faca49dc32acefa52a12d103c5f9ab2.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/tree.json index ceda01581..2c4079dcb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kendra/test/integ.lamken-with-vpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamken-with-vpc":{"id":"lamken-with-vpc","path":"lamken-with-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"lamken-with-vpc/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-with-vpc/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-with-vpc/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-with-vpc/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamken-with-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamken-with-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamken-with-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamken-with-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"lamken-with-vpc/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-with-vpc/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-with-vpc/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-with-vpc/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"minimal-arguments":{"id":"minimal-arguments","path":"lamken-with-vpc/minimal-arguments","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kendra.LambdaToKendra","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctionServiceRoleDefaultPolicy59EC60ED","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamken-with-vpc/minimal-arguments/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamken-with-vpc/minimal-arguments/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamken-with-vpc/minimal-arguments/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KENDRA_INDEX_ID":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Id"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["minimalargumentsLambdaFunctionServiceRole73B77FF7","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["minimalargumentsReplaceDefaultSecurityGroupsecuritygroupFDD71705","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole0F2C1CE4B","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kendra:BatchGet*","kendra:Describe*","kendra:Get*","kendra:List*","kendra:Query","kendra:Retrieve"],"Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole13B87ED37","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"kendra:SubmitFeedback","Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole2FA23AF8F","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}}}},"kendra-index-role-minimal-arguments":{"id":"kendra-index-role-minimal-arguments","path":"lamken-with-vpc/minimal-arguments/kendra-index-role-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importkendra-index-role-minimal-arguments":{"id":"Importkendra-index-role-minimal-arguments","path":"lamken-with-vpc/minimal-arguments/kendra-index-role-minimal-arguments/Importkendra-index-role-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/kendra-index-role-minimal-arguments/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Allow Kendra index to write CloudWatch Logs","policies":[{"policyName":"AllowLogging","policyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Condition":{"StringEquals":{"cloudwatch:namespace":"AWS/Kendra"}},"Effect":"Allow","Resource":"*"},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":"logs:DescribeLogGroups","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":["logs:CreateLogStream","logs:DescribeLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*:log-stream:*"]]}}],"Version":"2012-10-17"}}]}}}}},"kendra-index-minimal-arguments":{"id":"kendra-index-minimal-arguments","path":"lamken-with-vpc/minimal-arguments/kendra-index-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnIndex","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::Index","aws:cdk:cloudformation:props":{"edition":"DEVELOPER_EDITION","name":{"Fn::Join":["",["KendraIndexminimal-arguments-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["minimalargumentskendraindexroleminimalargumentsB1DBDF7D","Arn"]}}}},"data-source-role-minimal-arguments0":{"id":"data-source-role-minimal-arguments0","path":"lamken-with-vpc/minimal-arguments/data-source-role-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-minimal-arguments0":{"id":"Importdata-source-role-minimal-arguments0","path":"lamken-with-vpc/minimal-arguments/data-source-role-minimal-arguments0/Importdata-source-role-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/data-source-role-minimal-arguments0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"scrapBucketB11863B7"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"scrapBucketB11863B7"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-minimal-arguments0":{"id":"data-source-minimal-arguments0","path":"lamken-with-vpc/minimal-arguments/data-source-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"scrapBucketB11863B7"}}},"indexId":{"Ref":"minimalargumentskendraindexminimalarguments5CBDD236"},"name":{"Fn::Join":["",["s3-datasourceminimal-arguments0-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["minimalargumentsdatasourceroleminimalarguments00EAC5006","Arn"]},"type":"S3"}}}}},"Vpc":{"id":"Vpc","path":"lamken-with-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamken-with-vpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamken-with-vpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamken-with-vpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamken-with-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamken-with-vpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamken-with-vpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamken-with-vpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamken-with-vpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamken-with-vpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamken-with-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamken-with-vpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamken-with-vpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamken-with-vpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamken-with-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-with-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamken-with-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamken-with-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamken-with-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KENDRA":{"id":"KENDRA","path":"lamken-with-vpc/Vpc/KENDRA","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/KENDRA/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamkenwithvpcKENDRAsecuritygroup1395B6D2","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kendra"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamken-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamken-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamken-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamken-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamken-with-vpc-KENDRA-security-group":{"id":"lamken-with-vpc-KENDRA-security-group","path":"lamken-with-vpc/lamken-with-vpc-KENDRA-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/lamken-with-vpc-KENDRA-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamken-with-vpc/lamken-with-vpc-KENDRA-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamken-with-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamken-with-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamken-with-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamken-with-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-with-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-with-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-with-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-with-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamken-with-vpc":{"id":"lamken-with-vpc","path":"lamken-with-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"lamken-with-vpc/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-with-vpc/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-with-vpc/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-with-vpc/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamken-with-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamken-with-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamken-with-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamken-with-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"lamken-with-vpc/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamken-with-vpc/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamken-with-vpc/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-with-vpc/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"minimal-arguments":{"id":"minimal-arguments","path":"lamken-with-vpc/minimal-arguments","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kendra.LambdaToKendra","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctionServiceRoleDefaultPolicy59EC60ED","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamken-with-vpc/minimal-arguments/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamken-with-vpc/minimal-arguments/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamken-with-vpc/minimal-arguments/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d89f058f5194cced1bbf251642417472160658c64061bd045f1e3635f5abae3f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KENDRA_INDEX_ID":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Id"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["minimalargumentsLambdaFunctionServiceRole73B77FF7","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["minimalargumentsReplaceDefaultSecurityGroupsecuritygroupFDD71705","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole0F2C1CE4B","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kendra:BatchGet*","kendra:Describe*","kendra:Get*","kendra:List*","kendra:Query","kendra:Retrieve"],"Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole13B87ED37","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"kendra:SubmitFeedback","Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"},"policyName":"minimalargumentsLambdaFunctioninlinePolicyAddedToExecutionRole2FA23AF8F","roles":[{"Ref":"minimalargumentsLambdaFunctionServiceRole73B77FF7"}]}}}}}}},"kendra-index-role-minimal-arguments":{"id":"kendra-index-role-minimal-arguments","path":"lamken-with-vpc/minimal-arguments/kendra-index-role-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importkendra-index-role-minimal-arguments":{"id":"Importkendra-index-role-minimal-arguments","path":"lamken-with-vpc/minimal-arguments/kendra-index-role-minimal-arguments/Importkendra-index-role-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/kendra-index-role-minimal-arguments/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Allow Kendra index to write CloudWatch Logs","policies":[{"policyName":"AllowLogging","policyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Condition":{"StringEquals":{"cloudwatch:namespace":"AWS/Kendra"}},"Effect":"Allow","Resource":"*"},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":"logs:DescribeLogGroups","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*"]]}},{"Action":["logs:CreateLogStream","logs:DescribeLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/kendra/*:log-stream:*"]]}}],"Version":"2012-10-17"}}]}}}}},"kendra-index-minimal-arguments":{"id":"kendra-index-minimal-arguments","path":"lamken-with-vpc/minimal-arguments/kendra-index-minimal-arguments","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnIndex","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::Index","aws:cdk:cloudformation:props":{"edition":"DEVELOPER_EDITION","name":{"Fn::Join":["",["KendraIndexminimal-arguments-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["minimalargumentskendraindexroleminimalargumentsB1DBDF7D","Arn"]}}}},"data-source-role-minimal-arguments0":{"id":"data-source-role-minimal-arguments0","path":"lamken-with-vpc/minimal-arguments/data-source-role-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"description":"*","inlinePolicies":"*"}]},"children":{"Importdata-source-role-minimal-arguments0":{"id":"Importdata-source-role-minimal-arguments0","path":"lamken-with-vpc/minimal-arguments/data-source-role-minimal-arguments0/Importdata-source-role-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-with-vpc/minimal-arguments/data-source-role-minimal-arguments0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"kendra.amazonaws.com"}}],"Version":"2012-10-17"},"description":"Policy for Kendra S3 Data Source","policies":[{"policyName":"s3CrawlPolicy","policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"scrapBucketB11863B7"},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:s3:::",{"Ref":"scrapBucketB11863B7"}]]}},{"Action":["kendra:BatchDeleteDocument","kendra:BatchPutDocument"],"Effect":"Allow","Resource":{"Fn::GetAtt":["minimalargumentskendraindexminimalarguments5CBDD236","Arn"]}}],"Version":"2012-10-17"}}]}}}}},"data-source-minimal-arguments0":{"id":"data-source-minimal-arguments0","path":"lamken-with-vpc/minimal-arguments/data-source-minimal-arguments0","constructInfo":{"fqn":"aws-cdk-lib.aws_kendra.CfnDataSource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kendra::DataSource","aws:cdk:cloudformation:props":{"dataSourceConfiguration":{"s3Configuration":{"bucketName":{"Ref":"scrapBucketB11863B7"}}},"indexId":{"Ref":"minimalargumentskendraindexminimalarguments5CBDD236"},"name":{"Fn::Join":["",["s3-datasourceminimal-arguments0-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]},"roleArn":{"Fn::GetAtt":["minimalargumentsdatasourceroleminimalarguments00EAC5006","Arn"]},"type":"S3"}}}}},"Vpc":{"id":"Vpc","path":"lamken-with-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamken-with-vpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamken-with-vpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamken-with-vpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamken-with-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamken-with-vpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamken-with-vpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamken-with-vpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamken-with-vpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamken-with-vpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamken-with-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamken-with-vpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamken-with-vpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamken-with-vpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamken-with-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamken-with-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamken-with-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamken-with-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamken-with-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamken-with-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KENDRA":{"id":"KENDRA","path":"lamken-with-vpc/Vpc/KENDRA","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/Vpc/KENDRA/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamken-with-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamkenwithvpcKENDRAsecuritygroup1395B6D2","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kendra"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamken-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamken-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamken-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamken-with-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamken-with-vpc-KENDRA-security-group":{"id":"lamken-with-vpc-KENDRA-security-group","path":"lamken-with-vpc/lamken-with-vpc-KENDRA-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamken-with-vpc/lamken-with-vpc-KENDRA-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamken-with-vpc/lamken-with-vpc-KENDRA-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamken-with-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamken-with-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamken-with-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamken-with-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-with-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-with-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamken-with-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamken-with-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/README.adoc index 778f6755c..a44c9aa09 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/README.adoc @@ -54,7 +54,7 @@ const existingFirehoseDeliveryStream = previouslyCreatedKinesisFirehoseToS3Const new LambdaToKinesisFirehose(this, 'LambdaToFirehosePattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) }, @@ -106,7 +106,7 @@ existingFirehoseDeliveryStream = previouslyCreatedKinesisFirehoseToS3Construct.k new LambdaToKinesisFirehose(this, "LambdaToFirehosePattern", new LambdaToKinesisFirehoseProps.Builder() .existingKinesisFirehose(existingFirehoseDeliveryStream) .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -209,6 +209,10 @@ not change this Stream. image::aws-lambda-kinesisfirehose.png["Diagram showing the Lambda function, Kinesis firehose and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call Firehose, here is an example of calling Firehose: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/python/example_code/firehose/scenarios/firehose-put-actions/firehose.py['example']. (this example is in Python, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/asset.e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53/index.mjs b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/asset.e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53/index.mjs new file mode 100644 index 000000000..584c5c9be --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/asset.e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53/index.mjs @@ -0,0 +1,32 @@ +import { FirehoseClient, PutRecordCommand } from "@aws-sdk/client-firehose"; +const client = new FirehoseClient({}); + +export const handler = async(event) => { + var params = { + DeliveryStreamName: process.env.FIREHOSE_DELIVERYSTREAM_NAME /* required */, + Record: { + Data: "", + }, + }; + try { + for (let i=0; i<10; i++) { + params.Record.Data = Buffer.from(JSON.stringify(GenerateRecord())); + let input = new PutRecordCommand(params); + let response = await client.send(input); + console.log(`response: ${JSON.stringify(response, null, 2)}`); + } + } catch (e) { + console.log(`Failed: ${JSON.stringify(e)}`); + } +}; + +const directions = [ 'north', 'south', 'east', 'west' ]; + +function GenerateRecord() { + const random = Math.floor(Math.random() * directions.length); + return { + id: `record-${Math.random()}`, + direction: directions[random], + windspeed: Math.floor(Math.random() * 20) + }; +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/integ.json index dde28e15f..91743721c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamfhs-existing-function/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamfhsexistingfunctionIntegDefaultTestDeployAssertF673254D" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhs-existing-function.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhs-existing-function.assets.json index c82355b1f..340372887 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhs-existing-function.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhs-existing-function.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "displayName": "lamfhs-existing-function/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", @@ -29,16 +29,16 @@ } } }, - "f2c07ef2967f42be96b728cfb419c7f4ff97ae27fd18fac5e0b8c286a4de0d2b": { + "3b6879e4614f87ddea59e5f8bbe433fa0948b7712c21bc59e506c0599629d2a7": { "displayName": "lamfhs-existing-function Template", "source": { "path": "lamfhs-existing-function.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-57f0c8dd": { + "current_account-current_region-5c111c09": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f2c07ef2967f42be96b728cfb419c7f4ff97ae27fd18fac5e0b8c286a4de0d2b.json", + "objectKey": "3b6879e4614f87ddea59e5f8bbe433fa0948b7712c21bc59e506c0599629d2a7.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhs-existing-function.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhs-existing-function.template.json index 38ec2f665..960dc7bb3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhs-existing-function.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhs-existing-function.template.json @@ -666,7 +666,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "existingfunctionServiceRole90E818C0" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhsexistingfunctionIntegDefaultTestDeployAssertF673254D.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhsexistingfunctionIntegDefaultTestDeployAssertF673254D.assets.json index 70f6c0ed8..99c1e9aaa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhsexistingfunctionIntegDefaultTestDeployAssertF673254D.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/lamfhsexistingfunctionIntegDefaultTestDeployAssertF673254D.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamfhsexistingfunctionIntegDefaultTestDeployAssertF673254D Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/manifest.json index 42f1496f3..89ed74ecc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f2c07ef2967f42be96b728cfb419c7f4ff97ae27fd18fac5e0b8c286a4de0d2b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3b6879e4614f87ddea59e5f8bbe433fa0948b7712c21bc59e506c0599629d2a7.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -460,57 +460,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -519,7 +510,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -596,7 +590,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -740,7 +734,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -769,7 +766,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -833,7 +833,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -867,7 +870,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -890,7 +896,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -920,6 +929,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/tree.json index baa985364..90df9e37b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-function.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamfhs-existing-function":{"id":"lamfhs-existing-function","path":"lamfhs-existing-function","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"destination-firehose":{"id":"destination-firehose","path":"lamfhs-existing-function/destination-firehose","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.86.0"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lamfhs-existing-function/destination-firehose/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-existing-function/destination-firehose/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3BucketEC05EE08"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-existing-function/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-function/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"firehose-log-group":{"id":"firehose-log-group","path":"lamfhs-existing-function/destination-firehose/firehose-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/firehose-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}},"firehose-log-stream":{"id":"firehose-log-stream","path":"lamfhs-existing-function/destination-firehose/firehose-log-group/firehose-log-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.206.0","metadata":[{"logGroup":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/firehose-log-group/firehose-log-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"}}}}}}}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"lamfhs-existing-function/destination-firehose/KinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"lamfhs-existing-function/destination-firehose/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/KinesisFirehoseRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"lamfhs-existing-function/destination-firehose/KinesisFirehosePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/KinesisFirehosePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"destinationfirehosefirehoseloggroup874764AF"},":log-stream:",{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}]]}}],"Version":"2012-10-17"},"policyName":"destinationfirehoseKinesisFirehosePolicyCEB14055","roles":[{"Ref":"destinationfirehoseKinesisFirehoseRole5542AE95"}]}}}}},"KinesisFirehose":{"id":"KinesisFirehose","path":"lamfhs-existing-function/destination-firehose/KinesisFirehose","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamEncryptionConfigurationInput":{"keyType":"AWS_OWNED_CMK"},"deliveryStreamName":"KinesisFirehoselamfhsexistingfunctiondestinationfirehose3D67ADFF","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseRole5542AE95","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"},"logStreamName":{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamfhs-existing-function/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-existing-function/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lamfhs-existing-function/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lamfhs-existing-function/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"destination-firehoseaws-managed-key":{"id":"destination-firehoseaws-managed-key","path":"lamfhs-existing-function/destination-firehoseaws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":[]}},"existing-function":{"id":"existing-function","path":"lamfhs-existing-function/existing-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lamfhs-existing-function/existing-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lamfhs-existing-function/existing-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-function/existing-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"lamfhs-existing-function/existing-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamfhs-existing-function/existing-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamfhs-existing-function/existing-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamfhs-existing-function/existing-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53.zip"},"environment":{"variables":{"FIREHOSE_DELIVERYSTREAM_NAME":"KinesisFirehoselamfhsexistingfunctiondestinationfirehose3D67ADFF"}},"handler":"index.handler","role":{"Fn::GetAtt":["existingfunctionServiceRole90E818C0","Arn"]},"runtime":"nodejs20.x"}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamfhs-existing-function/existing-function/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/existing-function/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["firehose:DeleteDeliveryStream","firehose:PutRecord","firehose:PutRecordBatch","firehose:UpdateDestination"],"Effect":"Allow","Resource":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseE8EB5D91","Arn"]}}],"Version":"2012-10-17"},"policyName":"existingfunctioninlinePolicyAddedToExecutionRole0618E5FEB","roles":[{"Ref":"existingfunctionServiceRole90E818C0"}]}}}}}}},"test-construct":{"id":"test-construct","path":"lamfhs-existing-function/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisfirehose.LambdaToKinesisFirehose","version":"2.86.0"}},"Integ":{"id":"Integ","path":"lamfhs-existing-function/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamfhs-existing-function/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamfhs-existing-function/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamfhs-existing-function/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-existing-function/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-existing-function/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-existing-function/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-existing-function/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamfhs-existing-function":{"id":"lamfhs-existing-function","path":"lamfhs-existing-function","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"destination-firehose":{"id":"destination-firehose","path":"lamfhs-existing-function/destination-firehose","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.95.1"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-function/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lamfhs-existing-function/destination-firehose/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-existing-function/destination-firehose/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3BucketEC05EE08"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-existing-function/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-function/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"firehose-log-group":{"id":"firehose-log-group","path":"lamfhs-existing-function/destination-firehose/firehose-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/firehose-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}},"firehose-log-stream":{"id":"firehose-log-stream","path":"lamfhs-existing-function/destination-firehose/firehose-log-group/firehose-log-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.223.0","metadata":[{"logGroup":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/firehose-log-group/firehose-log-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"}}}}}}}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"lamfhs-existing-function/destination-firehose/KinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"lamfhs-existing-function/destination-firehose/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/KinesisFirehoseRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"lamfhs-existing-function/destination-firehose/KinesisFirehosePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/destination-firehose/KinesisFirehosePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"destinationfirehosefirehoseloggroup874764AF"},":log-stream:",{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}]]}}],"Version":"2012-10-17"},"policyName":"destinationfirehoseKinesisFirehosePolicyCEB14055","roles":[{"Ref":"destinationfirehoseKinesisFirehoseRole5542AE95"}]}}}}},"KinesisFirehose":{"id":"KinesisFirehose","path":"lamfhs-existing-function/destination-firehose/KinesisFirehose","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamEncryptionConfigurationInput":{"keyType":"AWS_OWNED_CMK"},"deliveryStreamName":"KinesisFirehoselamfhsexistingfunctiondestinationfirehose3D67ADFF","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseRole5542AE95","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"},"logStreamName":{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamfhs-existing-function/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-existing-function/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-existing-function/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-existing-function/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"destination-firehoseaws-managed-key":{"id":"destination-firehoseaws-managed-key","path":"lamfhs-existing-function/destination-firehoseaws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"existing-function":{"id":"existing-function","path":"lamfhs-existing-function/existing-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lamfhs-existing-function/existing-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lamfhs-existing-function/existing-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-function/existing-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"lamfhs-existing-function/existing-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamfhs-existing-function/existing-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamfhs-existing-function/existing-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamfhs-existing-function/existing-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53.zip"},"environment":{"variables":{"FIREHOSE_DELIVERYSTREAM_NAME":"KinesisFirehoselamfhsexistingfunctiondestinationfirehose3D67ADFF"}},"handler":"index.handler","role":{"Fn::GetAtt":["existingfunctionServiceRole90E818C0","Arn"]},"runtime":"nodejs22.x"}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamfhs-existing-function/existing-function/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-function/existing-function/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["firehose:DeleteDeliveryStream","firehose:PutRecord","firehose:PutRecordBatch","firehose:UpdateDestination"],"Effect":"Allow","Resource":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseE8EB5D91","Arn"]}}],"Version":"2012-10-17"},"policyName":"existingfunctioninlinePolicyAddedToExecutionRole0618E5FEB","roles":[{"Ref":"existingfunctionServiceRole90E818C0"}]}}}}}}},"test-construct":{"id":"test-construct","path":"lamfhs-existing-function/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisfirehose.LambdaToKinesisFirehose","version":"2.95.1"}},"Integ":{"id":"Integ","path":"lamfhs-existing-function/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamfhs-existing-function/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamfhs-existing-function/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamfhs-existing-function/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-existing-function/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-existing-function/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-existing-function/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-existing-function/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/lamfhs-existing-vpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/lamfhs-existing-vpc.assets.json index aa7f71c4e..88eb80df5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/lamfhs-existing-vpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/lamfhs-existing-vpc.assets.json @@ -43,16 +43,16 @@ } } }, - "ea707b505dec7c236ed8a70e22e22efc2993699a3b4b336429062f29163dc33b": { + "ff7f4d3d2926bd748b995d3401bfbaa0488c7ecea7edb806cfa11c91687d1025": { "displayName": "lamfhs-existing-vpc Template", "source": { "path": "lamfhs-existing-vpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-ee6e58fa": { + "current_account-current_region-7ed2cb05": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ea707b505dec7c236ed8a70e22e22efc2993699a3b4b336429062f29163dc33b.json", + "objectKey": "ff7f4d3d2926bd748b995d3401bfbaa0488c7ecea7edb806cfa11c91687d1025.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/lamfhs-existing-vpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/lamfhs-existing-vpc.template.json index 7d47ab10a..06eb39f6a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/lamfhs-existing-vpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/lamfhs-existing-vpc.template.json @@ -1462,7 +1462,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/manifest.json index ecd7b12ed..02c69ac14 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ea707b505dec7c236ed8a70e22e22efc2993699a3b4b336429062f29163dc33b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ff7f4d3d2926bd748b995d3401bfbaa0488c7ecea7edb806cfa11c91687d1025.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/tree.json index dcfc18b72..62a7d53a6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-existing-vpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamfhs-existing-vpc":{"id":"lamfhs-existing-vpc","path":"lamfhs-existing-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"destination-firehose":{"id":"destination-firehose","path":"lamfhs-existing-vpc/destination-firehose","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.94.0"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3BucketEC05EE08"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"firehose-log-group":{"id":"firehose-log-group","path":"lamfhs-existing-vpc/destination-firehose/firehose-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/firehose-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}},"firehose-log-stream":{"id":"firehose-log-stream","path":"lamfhs-existing-vpc/destination-firehose/firehose-log-group/firehose-log-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.223.0","metadata":[{"logGroup":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/firehose-log-group/firehose-log-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"}}}}}}}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehoseRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehosePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehosePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"destinationfirehosefirehoseloggroup874764AF"},":log-stream:",{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}]]}}],"Version":"2012-10-17"},"policyName":"destinationfirehoseKinesisFirehosePolicyCEB14055","roles":[{"Ref":"destinationfirehoseKinesisFirehoseRole5542AE95"}]}}}}},"KinesisFirehose":{"id":"KinesisFirehose","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehose","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamEncryptionConfigurationInput":{"keyType":"AWS_OWNED_CMK"},"deliveryStreamName":"KinesisFirehoselamfhsexistingvpcdestinationfirehose623CCD9C","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseRole5542AE95","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"},"logStreamName":{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamfhs-existing-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-existing-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-existing-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-existing-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"destination-firehoseaws-managed-key":{"id":"destination-firehoseaws-managed-key","path":"lamfhs-existing-vpc/destination-firehoseaws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"Vpc":{"id":"Vpc","path":"lamfhs-existing-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamfhs-existing-vpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamfhs-existing-vpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamfhs-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamfhs-existing-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamfhs-existing-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamfhs-existing-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_FIREHOSE":{"id":"KINESIS_FIREHOSE","path":"lamfhs-existing-vpc/Vpc/KINESIS_FIREHOSE","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/KINESIS_FIREHOSE/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamfhsexistingvpcKINESISFIREHOSEsecuritygroup18F0C673","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-firehose"]]},"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamfhs-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-construct":{"id":"test-construct","path":"lamfhs-existing-vpc/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisfirehose.LambdaToKinesisFirehose","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctionServiceRoleDefaultPolicyBBF7DEC4","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamfhs-existing-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamfhs-existing-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamfhs-existing-vpc/test-construct/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","FIREHOSE_DELIVERYSTREAM_NAME":"KinesisFirehoselamfhsexistingvpcdestinationfirehose623CCD9C"}},"handler":"index.handler","role":{"Fn::GetAtt":["testconstructLambdaFunctionServiceRole435FDF6F","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testconstructReplaceDefaultSecurityGroupsecuritygroup05665D84","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole0C88F4B36","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["firehose:DeleteDeliveryStream","firehose:PutRecord","firehose:PutRecordBatch","firehose:UpdateDestination"],"Effect":"Allow","Resource":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseE8EB5D91","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole14D1F9932","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}}}},"lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group":{"id":"lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group","path":"lamfhs-existing-vpc/lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamfhs-existing-vpc/lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamfhs-existing-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamfhs-existing-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamfhs-existing-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamfhs-existing-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-existing-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-existing-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-existing-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-existing-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamfhs-existing-vpc":{"id":"lamfhs-existing-vpc","path":"lamfhs-existing-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"destination-firehose":{"id":"destination-firehose","path":"lamfhs-existing-vpc/destination-firehose","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.95.1"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-vpc/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3BucketEC05EE08"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-vpc/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"firehose-log-group":{"id":"firehose-log-group","path":"lamfhs-existing-vpc/destination-firehose/firehose-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/firehose-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}},"firehose-log-stream":{"id":"firehose-log-stream","path":"lamfhs-existing-vpc/destination-firehose/firehose-log-group/firehose-log-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.223.0","metadata":[{"logGroup":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/firehose-log-group/firehose-log-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"}}}}}}}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehoseRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehosePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehosePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"destinationfirehosefirehoseloggroup874764AF"},":log-stream:",{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}]]}}],"Version":"2012-10-17"},"policyName":"destinationfirehoseKinesisFirehosePolicyCEB14055","roles":[{"Ref":"destinationfirehoseKinesisFirehoseRole5542AE95"}]}}}}},"KinesisFirehose":{"id":"KinesisFirehose","path":"lamfhs-existing-vpc/destination-firehose/KinesisFirehose","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamEncryptionConfigurationInput":{"keyType":"AWS_OWNED_CMK"},"deliveryStreamName":"KinesisFirehoselamfhsexistingvpcdestinationfirehose623CCD9C","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseRole5542AE95","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"},"logStreamName":{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamfhs-existing-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-existing-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-existing-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-existing-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"destination-firehoseaws-managed-key":{"id":"destination-firehoseaws-managed-key","path":"lamfhs-existing-vpc/destination-firehoseaws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"Vpc":{"id":"Vpc","path":"lamfhs-existing-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamfhs-existing-vpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamfhs-existing-vpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamfhs-existing-vpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamfhs-existing-vpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamfhs-existing-vpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamfhs-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamfhs-existing-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamfhs-existing-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamfhs-existing-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_FIREHOSE":{"id":"KINESIS_FIREHOSE","path":"lamfhs-existing-vpc/Vpc/KINESIS_FIREHOSE","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/Vpc/KINESIS_FIREHOSE/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-existing-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamfhsexistingvpcKINESISFIREHOSEsecuritygroup18F0C673","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-firehose"]]},"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamfhs-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-construct":{"id":"test-construct","path":"lamfhs-existing-vpc/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisfirehose.LambdaToKinesisFirehose","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctionServiceRoleDefaultPolicyBBF7DEC4","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamfhs-existing-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamfhs-existing-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamfhs-existing-vpc/test-construct/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","FIREHOSE_DELIVERYSTREAM_NAME":"KinesisFirehoselamfhsexistingvpcdestinationfirehose623CCD9C"}},"handler":"index.handler","role":{"Fn::GetAtt":["testconstructLambdaFunctionServiceRole435FDF6F","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testconstructReplaceDefaultSecurityGroupsecuritygroup05665D84","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole0C88F4B36","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["firehose:DeleteDeliveryStream","firehose:PutRecord","firehose:PutRecordBatch","firehose:UpdateDestination"],"Effect":"Allow","Resource":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseE8EB5D91","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole14D1F9932","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}}}},"lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group":{"id":"lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group","path":"lamfhs-existing-vpc/lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-existing-vpc/lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamfhs-existing-vpc/lamfhs-existing-vpc-KINESIS_FIREHOSE-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamfhs-existing-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamfhs-existing-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamfhs-existing-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamfhs-existing-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-existing-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-existing-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-existing-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-existing-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/lamfhs-new-vpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/lamfhs-new-vpc.assets.json index 6233790ad..8556dfe9b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/lamfhs-new-vpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/lamfhs-new-vpc.assets.json @@ -43,16 +43,16 @@ } } }, - "1edc0a68018787e4dab506e694e3f0e3440b8193d43398b4389fdbd85ff28daf": { + "0e72b760315e929e6dcdf81c461e6b31992fed1de5a3223dadca366197b97f25": { "displayName": "lamfhs-new-vpc Template", "source": { "path": "lamfhs-new-vpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-5b6e3e20": { + "current_account-current_region-89dab704": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "1edc0a68018787e4dab506e694e3f0e3440b8193d43398b4389fdbd85ff28daf.json", + "objectKey": "0e72b760315e929e6dcdf81c461e6b31992fed1de5a3223dadca366197b97f25.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/lamfhs-new-vpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/lamfhs-new-vpc.template.json index 6702130b5..b199306ad 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/lamfhs-new-vpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/lamfhs-new-vpc.template.json @@ -765,7 +765,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/manifest.json index 452bc43c9..d2957f838 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/1edc0a68018787e4dab506e694e3f0e3440b8193d43398b4389fdbd85ff28daf.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0e72b760315e929e6dcdf81c461e6b31992fed1de5a3223dadca366197b97f25.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/tree.json index 049241a2f..e46272922 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-new-vpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamfhs-new-vpc":{"id":"lamfhs-new-vpc","path":"lamfhs-new-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"destination-firehose":{"id":"destination-firehose","path":"lamfhs-new-vpc/destination-firehose","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.94.0"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lamfhs-new-vpc/destination-firehose/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3BucketEC05EE08"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"firehose-log-group":{"id":"firehose-log-group","path":"lamfhs-new-vpc/destination-firehose/firehose-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/firehose-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}},"firehose-log-stream":{"id":"firehose-log-stream","path":"lamfhs-new-vpc/destination-firehose/firehose-log-group/firehose-log-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.223.0","metadata":[{"logGroup":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/firehose-log-group/firehose-log-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"}}}}}}}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehoseRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehosePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehosePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"destinationfirehosefirehoseloggroup874764AF"},":log-stream:",{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}]]}}],"Version":"2012-10-17"},"policyName":"destinationfirehoseKinesisFirehosePolicyCEB14055","roles":[{"Ref":"destinationfirehoseKinesisFirehoseRole5542AE95"}]}}}}},"KinesisFirehose":{"id":"KinesisFirehose","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehose","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamEncryptionConfigurationInput":{"keyType":"AWS_OWNED_CMK"},"deliveryStreamName":"KinesisFirehoselamfhsnewvpcdestinationfirehoseF2428936","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseRole5542AE95","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"},"logStreamName":{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamfhs-new-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-new-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-new-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-new-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"destination-firehoseaws-managed-key":{"id":"destination-firehoseaws-managed-key","path":"lamfhs-new-vpc/destination-firehoseaws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"test-construct":{"id":"test-construct","path":"lamfhs-new-vpc/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisfirehose.LambdaToKinesisFirehose","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctionServiceRoleDefaultPolicyBBF7DEC4","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamfhs-new-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamfhs-new-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamfhs-new-vpc/test-construct/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamfhs-new-vpc/test-construct/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamfhs-new-vpc/test-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamfhs-new-vpc/test-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","FIREHOSE_DELIVERYSTREAM_NAME":"KinesisFirehoselamfhsnewvpcdestinationfirehoseF2428936"}},"handler":"index.handler","role":{"Fn::GetAtt":["testconstructLambdaFunctionServiceRole435FDF6F","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testconstructReplaceDefaultSecurityGroupsecuritygroup05665D84","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamfhs-new-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole0C88F4B36","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamfhs-new-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["firehose:DeleteDeliveryStream","firehose:PutRecord","firehose:PutRecordBatch","firehose:UpdateDestination"],"Effect":"Allow","Resource":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseE8EB5D91","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole14D1F9932","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamfhs-new-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"ipAddresses":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.100.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.100.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamfhs-new-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.100.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamfhs-new-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamfhs-new-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-new-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamfhs-new-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamfhs-new-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamfhs-new-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_FIREHOSE":{"id":"KINESIS_FIREHOSE","path":"lamfhs-new-vpc/Vpc/KINESIS_FIREHOSE","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/KINESIS_FIREHOSE/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamfhsnewvpcKINESISFIREHOSEsecuritygroupDF50B55F","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-firehose"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamfhs-new-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-new-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-new-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-new-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamfhs-new-vpc-KINESIS_FIREHOSE-security-group":{"id":"lamfhs-new-vpc-KINESIS_FIREHOSE-security-group","path":"lamfhs-new-vpc/lamfhs-new-vpc-KINESIS_FIREHOSE-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/lamfhs-new-vpc-KINESIS_FIREHOSE-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamfhs-new-vpc/lamfhs-new-vpc-KINESIS_FIREHOSE-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamfhs-new-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamfhs-new-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamfhs-new-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamfhs-new-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-new-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-new-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-new-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-new-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamfhs-new-vpc":{"id":"lamfhs-new-vpc","path":"lamfhs-new-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"destination-firehose":{"id":"destination-firehose","path":"lamfhs-new-vpc/destination-firehose","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.95.1"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-new-vpc/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lamfhs-new-vpc/destination-firehose/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3BucketEC05EE08"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-new-vpc/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"firehose-log-group":{"id":"firehose-log-group","path":"lamfhs-new-vpc/destination-firehose/firehose-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/firehose-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}},"firehose-log-stream":{"id":"firehose-log-stream","path":"lamfhs-new-vpc/destination-firehose/firehose-log-group/firehose-log-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.223.0","metadata":[{"logGroup":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/firehose-log-group/firehose-log-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"}}}}}}}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehoseRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehosePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehosePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"destinationfirehosefirehoseloggroup874764AF"},":log-stream:",{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}]]}}],"Version":"2012-10-17"},"policyName":"destinationfirehoseKinesisFirehosePolicyCEB14055","roles":[{"Ref":"destinationfirehoseKinesisFirehoseRole5542AE95"}]}}}}},"KinesisFirehose":{"id":"KinesisFirehose","path":"lamfhs-new-vpc/destination-firehose/KinesisFirehose","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamEncryptionConfigurationInput":{"keyType":"AWS_OWNED_CMK"},"deliveryStreamName":"KinesisFirehoselamfhsnewvpcdestinationfirehoseF2428936","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseRole5542AE95","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"},"logStreamName":{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamfhs-new-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-new-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-new-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-new-vpc/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"destination-firehoseaws-managed-key":{"id":"destination-firehoseaws-managed-key","path":"lamfhs-new-vpc/destination-firehoseaws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"test-construct":{"id":"test-construct","path":"lamfhs-new-vpc/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisfirehose.LambdaToKinesisFirehose","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctionServiceRoleDefaultPolicyBBF7DEC4","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamfhs-new-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamfhs-new-vpc/test-construct/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamfhs-new-vpc/test-construct/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamfhs-new-vpc/test-construct/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamfhs-new-vpc/test-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamfhs-new-vpc/test-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","FIREHOSE_DELIVERYSTREAM_NAME":"KinesisFirehoselamfhsnewvpcdestinationfirehoseF2428936"}},"handler":"index.handler","role":{"Fn::GetAtt":["testconstructLambdaFunctionServiceRole435FDF6F","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testconstructReplaceDefaultSecurityGroupsecuritygroup05665D84","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamfhs-new-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole0C88F4B36","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamfhs-new-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["firehose:DeleteDeliveryStream","firehose:PutRecord","firehose:PutRecordBatch","firehose:UpdateDestination"],"Effect":"Allow","Resource":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseE8EB5D91","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole14D1F9932","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamfhs-new-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"ipAddresses":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.100.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.100.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamfhs-new-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-new-vpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.100.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamfhs-new-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamfhs-new-vpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamfhs-new-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-new-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamfhs-new-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamfhs-new-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamfhs-new-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_FIREHOSE":{"id":"KINESIS_FIREHOSE","path":"lamfhs-new-vpc/Vpc/KINESIS_FIREHOSE","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/Vpc/KINESIS_FIREHOSE/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamfhs-new-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamfhsnewvpcKINESISFIREHOSEsecuritygroupDF50B55F","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-firehose"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamfhs-new-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-new-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-new-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-new-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamfhs-new-vpc-KINESIS_FIREHOSE-security-group":{"id":"lamfhs-new-vpc-KINESIS_FIREHOSE-security-group","path":"lamfhs-new-vpc/lamfhs-new-vpc-KINESIS_FIREHOSE-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-new-vpc/lamfhs-new-vpc-KINESIS_FIREHOSE-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamfhs-new-vpc/lamfhs-new-vpc-KINESIS_FIREHOSE-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamfhs-new-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamfhs-new-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamfhs-new-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamfhs-new-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-new-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-new-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-new-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-new-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/asset.e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53/index.mjs b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/asset.e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53/index.mjs new file mode 100644 index 000000000..584c5c9be --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/asset.e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53/index.mjs @@ -0,0 +1,32 @@ +import { FirehoseClient, PutRecordCommand } from "@aws-sdk/client-firehose"; +const client = new FirehoseClient({}); + +export const handler = async(event) => { + var params = { + DeliveryStreamName: process.env.FIREHOSE_DELIVERYSTREAM_NAME /* required */, + Record: { + Data: "", + }, + }; + try { + for (let i=0; i<10; i++) { + params.Record.Data = Buffer.from(JSON.stringify(GenerateRecord())); + let input = new PutRecordCommand(params); + let response = await client.send(input); + console.log(`response: ${JSON.stringify(response, null, 2)}`); + } + } catch (e) { + console.log(`Failed: ${JSON.stringify(e)}`); + } +}; + +const directions = [ 'north', 'south', 'east', 'west' ]; + +function GenerateRecord() { + const random = Math.floor(Math.random() * directions.length); + return { + id: `record-${Math.random()}`, + direction: directions[random], + windspeed: Math.floor(Math.random() * 20) + }; +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/integ.json index 6462e326e..84302b098 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamfhs-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamfhsnoargumentsIntegDefaultTestDeployAssert82E07C14" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhs-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhs-no-arguments.assets.json index 32659a3fb..db49097fa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhs-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhs-no-arguments.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "displayName": "lamfhs-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", @@ -29,16 +29,16 @@ } } }, - "0c689e343502b328cfbd5eb2e7dda497f83efe72bae08a9975d2c4cab966ea59": { + "958b3d793d53c8a5e71899b9e072db0946b65aab05c56d0aab1fb7922f0524a2": { "displayName": "lamfhs-no-arguments Template", "source": { "path": "lamfhs-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-71bbd50c": { + "current_account-current_region-1ed320ea": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0c689e343502b328cfbd5eb2e7dda497f83efe72bae08a9975d2c4cab966ea59.json", + "objectKey": "958b3d793d53c8a5e71899b9e072db0946b65aab05c56d0aab1fb7922f0524a2.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhs-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhs-no-arguments.template.json index 3a1b77f0c..02701c15b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhs-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhs-no-arguments.template.json @@ -698,7 +698,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhsnoargumentsIntegDefaultTestDeployAssert82E07C14.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhsnoargumentsIntegDefaultTestDeployAssert82E07C14.assets.json index 6a4e2da14..cc17ab39a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhsnoargumentsIntegDefaultTestDeployAssert82E07C14.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/lamfhsnoargumentsIntegDefaultTestDeployAssert82E07C14.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamfhsnoargumentsIntegDefaultTestDeployAssert82E07C14 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/manifest.json index f4c6522c6..c013b250a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0c689e343502b328cfbd5eb2e7dda497f83efe72bae08a9975d2c4cab966ea59.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/958b3d793d53c8a5e71899b9e072db0946b65aab05c56d0aab1fb7922f0524a2.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -524,57 +524,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -583,7 +574,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -660,7 +654,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -804,7 +798,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -833,7 +830,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -897,7 +897,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -931,7 +934,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -954,7 +960,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -984,6 +993,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/tree.json index e7296a0b2..ac2e99bba 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/test/integ.lamfhs-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamfhs-no-arguments":{"id":"lamfhs-no-arguments","path":"lamfhs-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"destination-firehose":{"id":"destination-firehose","path":"lamfhs-no-arguments/destination-firehose","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.86.0"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lamfhs-no-arguments/destination-firehose/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3BucketEC05EE08"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"firehose-log-group":{"id":"firehose-log-group","path":"lamfhs-no-arguments/destination-firehose/firehose-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/firehose-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}},"firehose-log-stream":{"id":"firehose-log-stream","path":"lamfhs-no-arguments/destination-firehose/firehose-log-group/firehose-log-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.206.0","metadata":[{"logGroup":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/firehose-log-group/firehose-log-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"}}}}}}}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehoseRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehosePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehosePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"destinationfirehosefirehoseloggroup874764AF"},":log-stream:",{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}]]}}],"Version":"2012-10-17"},"policyName":"destinationfirehoseKinesisFirehosePolicyCEB14055","roles":[{"Ref":"destinationfirehoseKinesisFirehoseRole5542AE95"}]}}}}},"KinesisFirehose":{"id":"KinesisFirehose","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehose","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamEncryptionConfigurationInput":{"keyType":"AWS_OWNED_CMK"},"deliveryStreamName":"KinesisFirehoselamfhsnoargumentsdestinationfirehoseC6583242","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseRole5542AE95","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"},"logStreamName":{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamfhs-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lamfhs-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lamfhs-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"destination-firehoseaws-managed-key":{"id":"destination-firehoseaws-managed-key","path":"lamfhs-no-arguments/destination-firehoseaws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":[]}},"test-construct":{"id":"test-construct","path":"lamfhs-no-arguments/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisfirehose.LambdaToKinesisFirehose","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamfhs-no-arguments/test-construct/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamfhs-no-arguments/test-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-no-arguments/test-construct/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamfhs-no-arguments/test-construct/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamfhs-no-arguments/test-construct/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamfhs-no-arguments/test-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamfhs-no-arguments/test-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamfhs-no-arguments/test-construct/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","FIREHOSE_DELIVERYSTREAM_NAME":"KinesisFirehoselamfhsnoargumentsdestinationfirehoseC6583242"}},"handler":"index.handler","role":{"Fn::GetAtt":["testconstructLambdaFunctionServiceRole435FDF6F","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamfhs-no-arguments/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole0C88F4B36","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamfhs-no-arguments/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["firehose:DeleteDeliveryStream","firehose:PutRecord","firehose:PutRecordBatch","firehose:UpdateDestination"],"Effect":"Allow","Resource":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseE8EB5D91","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole14D1F9932","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamfhs-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamfhs-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamfhs-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamfhs-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamfhs-no-arguments":{"id":"lamfhs-no-arguments","path":"lamfhs-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"destination-firehose":{"id":"destination-firehose","path":"lamfhs-no-arguments/destination-firehose","constructInfo":{"fqn":"@aws-solutions-constructs/aws-kinesisfirehose-s3.KinesisFirehoseToS3","version":"2.95.1"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3LoggingBucket19A32AC0","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-no-arguments/destination-firehose/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lamfhs-no-arguments/destination-firehose/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"destinationfirehoseS3LoggingBucket19A32AC0"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"destinationfirehoseS3BucketEC05EE08"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamfhs-no-arguments/destination-firehose/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"firehose-log-group":{"id":"firehose-log-group","path":"lamfhs-no-arguments/destination-firehose/firehose-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/firehose-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}},"firehose-log-stream":{"id":"firehose-log-stream","path":"lamfhs-no-arguments/destination-firehose/firehose-log-group/firehose-log-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogStream","version":"2.223.0","metadata":[{"logGroup":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/firehose-log-group/firehose-log-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogStream","aws:cdk:cloudformation:props":{"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"}}}}}}}},"KinesisFirehoseRole":{"id":"KinesisFirehoseRole","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportKinesisFirehoseRole":{"id":"ImportKinesisFirehoseRole","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehoseRole/ImportKinesisFirehoseRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehoseRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"firehose.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"KinesisFirehosePolicy":{"id":"KinesisFirehosePolicy","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehosePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehosePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:AbortMultipartUpload","s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:ListBucketMultipartUploads","s3:PutObject"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"/*"]]}]},{"Action":"logs:PutLogEvents","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:",{"Ref":"destinationfirehosefirehoseloggroup874764AF"},":log-stream:",{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}]]}}],"Version":"2012-10-17"},"policyName":"destinationfirehoseKinesisFirehosePolicyCEB14055","roles":[{"Ref":"destinationfirehoseKinesisFirehoseRole5542AE95"}]}}}}},"KinesisFirehose":{"id":"KinesisFirehose","path":"lamfhs-no-arguments/destination-firehose/KinesisFirehose","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesisfirehose.CfnDeliveryStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KinesisFirehose::DeliveryStream","aws:cdk:cloudformation:props":{"deliveryStreamEncryptionConfigurationInput":{"keyType":"AWS_OWNED_CMK"},"deliveryStreamName":"KinesisFirehoselamfhsnoargumentsdestinationfirehoseC6583242","extendedS3DestinationConfiguration":{"bucketArn":{"Fn::GetAtt":["destinationfirehoseS3BucketEC05EE08","Arn"]},"bufferingHints":{"intervalInSeconds":300,"sizeInMBs":5},"compressionFormat":"GZIP","roleArn":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseRole5542AE95","Arn"]},"cloudWatchLoggingOptions":{"enabled":true,"logGroupName":{"Ref":"destinationfirehosefirehoseloggroup874764AF"},"logStreamName":{"Ref":"destinationfirehosefirehoseloggroupfirehoselogstreamC03C78F6"}},"encryptionConfiguration":{"kmsEncryptionConfig":{"awskmsKeyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/s3"]]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamfhs-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamfhs-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamfhs-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamfhs-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"destination-firehoseaws-managed-key":{"id":"destination-firehoseaws-managed-key","path":"lamfhs-no-arguments/destination-firehoseaws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"test-construct":{"id":"test-construct","path":"lamfhs-no-arguments/test-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisfirehose.LambdaToKinesisFirehose","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamfhs-no-arguments/test-construct/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamfhs-no-arguments/test-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamfhs-no-arguments/test-construct/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamfhs-no-arguments/test-construct/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamfhs-no-arguments/test-construct/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamfhs-no-arguments/test-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamfhs-no-arguments/test-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamfhs-no-arguments/test-construct/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e223396f670e1c26b56c83fd2179ab8672928b9795821c6a437874a06625eb53.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","FIREHOSE_DELIVERYSTREAM_NAME":"KinesisFirehoselamfhsnoargumentsdestinationfirehoseC6583242"}},"handler":"index.handler","role":{"Fn::GetAtt":["testconstructLambdaFunctionServiceRole435FDF6F","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamfhs-no-arguments/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole0C88F4B36","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamfhs-no-arguments/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamfhs-no-arguments/test-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["firehose:DeleteDeliveryStream","firehose:PutRecord","firehose:PutRecordBatch","firehose:UpdateDestination"],"Effect":"Allow","Resource":{"Fn::GetAtt":["destinationfirehoseKinesisFirehoseE8EB5D91","Arn"]}}],"Version":"2012-10-17"},"policyName":"testconstructLambdaFunctioninlinePolicyAddedToExecutionRole14D1F9932","roles":[{"Ref":"testconstructLambdaFunctionServiceRole435FDF6F"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamfhs-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamfhs-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamfhs-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamfhs-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamfhs-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamfhs-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/README.adoc index 01e575f35..8872712f4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/README.adoc @@ -50,7 +50,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToKinesisStreams(this, 'LambdaToKinesisStreams', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -93,7 +93,7 @@ import software.amazon.awsconstructs.services.lambdakinesisstreams.*; new LambdaToKinesisStreams(this, "LambdaToKinesisStreams", new LambdaToKinesisStreamsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -207,6 +207,10 @@ Managed CMK image::aws-lambda-kinesisstreams.png["Diagram showing the Lambda function, Kinesis data stream and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call Kinesis, here is an example of calling Kinesis PutRecords: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_create_job.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs new file mode 100644 index 000000000..4ecf51ccf --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs @@ -0,0 +1,15 @@ +import { KinesisClient, PutRecordCommand } from "@aws-sdk/client-kinesis"; + +const kinesis = new KinesisClient({ region: process.env.REGION }); +const streamName = process.env.KINESIS_DATASTREAM_NAME; + +export const handler = async(event) => { + + const result = await kinesis.send(new PutRecordCommand({ + StreamName: streamName, + Data: Buffer.from('hello from solutions constructs'), + PartitionKey: '1' + })); + + console.log(JSON.stringify(result)); +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/integ.json index 8caf28206..9d7d6212e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamkin-existingLambda/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamkin-existingLambda/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.assets.json index b21c1d248..beaeeae99 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf": { + "displayName": "LambdaFunction/Code", "source": { "path": "asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-0b4831fe": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "2fb2df92b9832ff695e237c32f09985558377d1597978b5e039a763845db408e": { + "ffe41870add05fbba6c7e657e3f5c80da56a7f03219858b2c70f38ec18fca0ad": { + "displayName": "lamkin-existingLambda Template", "source": { "path": "lamkin-existingLambda.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-501d2cad": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "2fb2df92b9832ff695e237c32f09985558377d1597978b5e039a763845db408e.json", + "objectKey": "ffe41870add05fbba6c7e657e3f5c80da56a7f03219858b2c70f38ec18fca0ad.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.template.json index f976f1e38..ffdf64dbb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.template.json @@ -116,7 +116,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419.assets.json index 05e2a3374..b0998f034 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419 Template", "source": { "path": "lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/manifest.json index 4519f22a2..cb899c5e1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2fb2df92b9832ff695e237c32f09985558377d1597978b5e039a763845db408e.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ffe41870add05fbba6c7e657e3f5c80da56a7f03219858b2c70f38ec18fca0ad.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -278,7 +278,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -298,7 +299,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -333,7 +335,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/tree.json index b4d785e3b..5eacbb121 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingLambda.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamkin-existingLambda":{"id":"lamkin-existingLambda","path":"lamkin-existingLambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-existingLambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-existingLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingLambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingLambda/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-existingLambda/LambdaFunction","children":{"Code":{"id":"Code","path":"lamkin-existingLambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamkin-existingLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-existingLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamkin-existingLambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-existingLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-existingLambda/test-lambda-kinesisstreams","children":{"KinesisStream":{"id":"KinesisStream","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStream","children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStream/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.186.0","metadata":[{"encryption":"MANAGED"}]}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamkin-existingLambda/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-existingLambda/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamkin-existingLambda/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-existingLambda/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingLambda/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingLambda/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingLambda/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingLambda/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-existingLambda":{"id":"lamkin-existingLambda","path":"lamkin-existingLambda","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-existingLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-existingLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingLambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-existingLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-existingLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-existingLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-existingLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-existingLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-existingLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-existingLambda/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.95.1"},"children":{"KinesisStream":{"id":"KinesisStream","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingLambda/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Integ":{"id":"Integ","path":"lamkin-existingLambda/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-existingLambda/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-existingLambda/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-existingLambda/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingLambda/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingLambda/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingLambda/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingLambda/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs new file mode 100644 index 000000000..4ecf51ccf --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs @@ -0,0 +1,15 @@ +import { KinesisClient, PutRecordCommand } from "@aws-sdk/client-kinesis"; + +const kinesis = new KinesisClient({ region: process.env.REGION }); +const streamName = process.env.KINESIS_DATASTREAM_NAME; + +export const handler = async(event) => { + + const result = await kinesis.send(new PutRecordCommand({ + StreamName: streamName, + Data: Buffer.from('hello from solutions constructs'), + PartitionKey: '1' + })); + + console.log(JSON.stringify(result)); +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/integ.json index 779036bf2..818b4a726 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamkin-existingStream/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamkin-existingStream/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.assets.json index d2112f60c..18d1d6224 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf": { + "displayName": "test-lambda-kinesisstreams/LambdaFunction/Code", "source": { "path": "asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-0b4831fe": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "75cceb8be0f6c8702668fd2707d8d5f50215d649b13fb5ed751ca995d4a0bc43": { + "c4cbcf25362ed20ee61f9062121bf14c683ebb14f3e448d2cc9e0e162b110152": { + "displayName": "lamkin-existingStream Template", "source": { "path": "lamkin-existingStream.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-6f976332": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "75cceb8be0f6c8702668fd2707d8d5f50215d649b13fb5ed751ca995d4a0bc43.json", + "objectKey": "c4cbcf25362ed20ee61f9062121bf14c683ebb14f3e448d2cc9e0e162b110152.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.template.json index 7269e6a6f..3ef08668e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.template.json @@ -131,7 +131,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2.assets.json index 23fa6b8a6..dcc272656 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2 Template", "source": { "path": "lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/manifest.json index 5acde7bb7..eaf90c39a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/75cceb8be0f6c8702668fd2707d8d5f50215d649b13fb5ed751ca995d4a0bc43.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c4cbcf25362ed20ee61f9062121bf14c683ebb14f3e448d2cc9e0e162b110152.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -279,7 +279,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -299,7 +300,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -334,7 +336,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/tree.json index 34eb18e2c..4a09549a5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStream.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamkin-existingStream":{"id":"lamkin-existingStream","path":"lamkin-existingStream","children":{"test-stream":{"id":"test-stream","path":"lamkin-existingStream/test-stream","children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-stream/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"},"streamModeDetails":{"streamMode":"ON_DEMAND"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.186.0","metadata":[{"streamMode":"ON_DEMAND","encryption":"MANAGED"}]}},"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-existingStream/test-lambda-kinesisstreams","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["teststream04374A09","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction","children":{"Code":{"id":"Code","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"teststream04374A09"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-existingStream/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-existingStream/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamkin-existingStream/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-existingStream/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamkin-existingStream/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-existingStream/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingStream/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingStream/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingStream/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingStream/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-existingStream":{"id":"lamkin-existingStream","path":"lamkin-existingStream","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-stream":{"id":"test-stream","path":"lamkin-existingStream/test-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"streamMode":"ON_DEMAND","encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"},"streamModeDetails":{"streamMode":"ON_DEMAND"}}}}}},"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-existingStream/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["teststream04374A09","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"teststream04374A09"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-existingStream/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-existingStream/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStream/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Integ":{"id":"Integ","path":"lamkin-existingStream/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-existingStream/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-existingStream/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-existingStream/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingStream/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingStream/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingStream/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingStream/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs new file mode 100644 index 000000000..4ecf51ccf --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs @@ -0,0 +1,15 @@ +import { KinesisClient, PutRecordCommand } from "@aws-sdk/client-kinesis"; + +const kinesis = new KinesisClient({ region: process.env.REGION }); +const streamName = process.env.KINESIS_DATASTREAM_NAME; + +export const handler = async(event) => { + + const result = await kinesis.send(new PutRecordCommand({ + StreamName: streamName, + Data: Buffer.from('hello from solutions constructs'), + PartitionKey: '1' + })); + + console.log(JSON.stringify(result)); +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/integ.json index 0e348fb35..96f3a4362 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamkin-existingStreamWithCmk/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamkin-existingStreamWithCmk/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.assets.json index d2f87cb6b..0fa1b3b8b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf": { + "displayName": "test-lambda-kinesisstreams/LambdaFunction/Code", "source": { "path": "asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-0b4831fe": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "f1ef3feb41c583900d3b9c1ffe571ea541fe856314fec0d8f564e329d486b81a": { + "762a0789d2e04378d1186c9b607f701aecdf7dad351854619ca2a5727a3ae79c": { + "displayName": "lamkin-existingStreamWithCmk Template", "source": { "path": "lamkin-existingStreamWithCmk.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-649ec2ba": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f1ef3feb41c583900d3b9c1ffe571ea541fe856314fec0d8f564e329d486b81a.json", + "objectKey": "762a0789d2e04378d1186c9b607f701aecdf7dad351854619ca2a5727a3ae79c.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.template.json index 56604ffe5..7aa3c6104 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.template.json @@ -185,7 +185,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045.assets.json index 7c1936dac..d8df6e927 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045 Template", "source": { "path": "lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/manifest.json index 6233bae28..ee1c160fc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f1ef3feb41c583900d3b9c1ffe571ea541fe856314fec0d8f564e329d486b81a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/762a0789d2e04378d1186c9b607f701aecdf7dad351854619ca2a5727a3ae79c.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -324,7 +324,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -344,7 +345,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -379,7 +381,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/tree.json index bf48b738d..8a7eacbbf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingStreamWithCmk.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamkin-existingStreamWithCmk":{"id":"lamkin-existingStreamWithCmk","path":"lamkin-existingStreamWithCmk","children":{"test-key":{"id":"test-key","path":"lamkin-existingStreamWithCmk/test-key","children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-key/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.186.0","metadata":[{"enableKeyRotation":true}]}},"test-stream":{"id":"test-stream","path":"lamkin-existingStreamWithCmk/test-stream","children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-stream/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":{"Fn::GetAtt":["testkey784D0285","Arn"]}}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.186.0","metadata":[{"encryptionKey":"*"}]}},"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["teststream04374A09","Arn"]}},{"Action":["kms:Decrypt","kms:Encrypt","kms:GenerateDataKey*","kms:ReEncrypt*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkey784D0285","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction","children":{"Code":{"id":"Code","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"teststream04374A09"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamkin-existingStreamWithCmk/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingStreamWithCmk/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingStreamWithCmk/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-existingStreamWithCmk":{"id":"lamkin-existingStreamWithCmk","path":"lamkin-existingStreamWithCmk","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-key":{"id":"test-key","path":"lamkin-existingStreamWithCmk/test-key","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.223.0","metadata":[{"enableKeyRotation":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-key/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"test-stream":{"id":"test-stream","path":"lamkin-existingStreamWithCmk/test-stream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryptionKey":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-stream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":{"Fn::GetAtt":["testkey784D0285","Arn"]}}}}}}},"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["teststream04374A09","Arn"]}},{"Action":["kms:Decrypt","kms:Encrypt","kms:GenerateDataKey*","kms:ReEncrypt*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkey784D0285","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"teststream04374A09"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingStreamWithCmk/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Integ":{"id":"Integ","path":"lamkin-existingStreamWithCmk/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingStreamWithCmk/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingStreamWithCmk/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingStreamWithCmk/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.assets.json index 252d47a79..b59939a34 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "3feb1d161f8a47e5920e3ee615458ac1138f163efa4047eb8e7d413f8b74672a": { + "a028d684d9eb5589cb1480c1ffb6bba7bacc3760ac64e2c6f1da0dd61045d01f": { "displayName": "lamkin-existingVpc Template", "source": { "path": "lamkin-existingVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-c9d97f0d": { + "current_account-current_region-d7268127": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3feb1d161f8a47e5920e3ee615458ac1138f163efa4047eb8e7d413f8b74672a.json", + "objectKey": "a028d684d9eb5589cb1480c1ffb6bba7bacc3760ac64e2c6f1da0dd61045d01f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.template.json index d5864a6a5..85a671314 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.template.json @@ -864,7 +864,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/manifest.json index 69028da85..1c3e6c24c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3feb1d161f8a47e5920e3ee615458ac1138f163efa4047eb8e7d413f8b74672a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a028d684d9eb5589cb1480c1ffb6bba7bacc3760ac64e2c6f1da0dd61045d01f.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/tree.json index 1aaef2213..1bb7053bb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-existingVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-existingVpc":{"id":"lamkin-existingVpc","path":"lamkin-existingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamkin-existingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamkin-existingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-existingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-existingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-existingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-existingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamkin-existingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamkin-existingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamkin-existingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamkin-existingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-existingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-existingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-existingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-existingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamkin-existingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamkin-existingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamkin-existingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamkin-existingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamkin-existingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamkin-existingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamkin-existingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamkin-existingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamkin-existingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamkin-existingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamkin-existingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-existingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamkin-existingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-existingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_STREAMS":{"id":"KINESIS_STREAMS","path":"lamkin-existingVpc/Vpc/KINESIS_STREAMS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/KINESIS_STREAMS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamkinexistingVpcKINESISSTREAMSsecuritygroupC307369A","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-streams"]]},"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamkin-existingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamkin-existingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamkin-existingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamkin-existingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-existingVpc/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamkin-existingVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-existingVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"lamkin-existingVpc-KINESIS_STREAMS-security-group":{"id":"lamkin-existingVpc-KINESIS_STREAMS-security-group","path":"lamkin-existingVpc/lamkin-existingVpc-KINESIS_STREAMS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/lamkin-existingVpc-KINESIS_STREAMS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-existingVpc/lamkin-existingVpc-KINESIS_STREAMS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamkin-existingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-existingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-existingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-existingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-existingVpc":{"id":"lamkin-existingVpc","path":"lamkin-existingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamkin-existingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamkin-existingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-existingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-existingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-existingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-existingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamkin-existingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamkin-existingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamkin-existingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamkin-existingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-existingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-existingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-existingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-existingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamkin-existingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamkin-existingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamkin-existingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamkin-existingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamkin-existingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamkin-existingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamkin-existingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamkin-existingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamkin-existingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamkin-existingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamkin-existingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamkin-existingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamkin-existingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-existingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamkin-existingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-existingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_STREAMS":{"id":"KINESIS_STREAMS","path":"lamkin-existingVpc/Vpc/KINESIS_STREAMS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/Vpc/KINESIS_STREAMS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-existingVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamkinexistingVpcKINESISSTREAMSsecuritygroupC307369A","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-streams"]]},"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamkin-existingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamkin-existingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamkin-existingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamkin-existingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-existingVpc/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamkin-existingVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-existingVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"lamkin-existingVpc-KINESIS_STREAMS-security-group":{"id":"lamkin-existingVpc-KINESIS_STREAMS-security-group","path":"lamkin-existingVpc/lamkin-existingVpc-KINESIS_STREAMS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-existingVpc/lamkin-existingVpc-KINESIS_STREAMS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-existingVpc/lamkin-existingVpc-KINESIS_STREAMS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamkin-existingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-existingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-existingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-existingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-existingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-existingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs new file mode 100644 index 000000000..4ecf51ccf --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs @@ -0,0 +1,15 @@ +import { KinesisClient, PutRecordCommand } from "@aws-sdk/client-kinesis"; + +const kinesis = new KinesisClient({ region: process.env.REGION }); +const streamName = process.env.KINESIS_DATASTREAM_NAME; + +export const handler = async(event) => { + + const result = await kinesis.send(new PutRecordCommand({ + StreamName: streamName, + Data: Buffer.from('hello from solutions constructs'), + PartitionKey: '1' + })); + + console.log(JSON.stringify(result)); +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/integ.json index fedf8bfb5..fd167e909 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamkin-newStreamFromProps/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamkin-newStreamFromProps/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.assets.json index ff5b0e849..4ef76c22e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf": { + "displayName": "test-lambda-kinesisstreams/LambdaFunction/Code", "source": { "path": "asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-0b4831fe": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "517108cf97b8d1254ec21e361559ec90e6d36fc50bb41ebc03356d232fa45622": { + "5b6a6245a8baa0f97c18f45a086e0199b2cff96500709859639845a8426c5372": { + "displayName": "lamkin-newStreamFromProps Template", "source": { "path": "lamkin-newStreamFromProps.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-71e5fe84": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "517108cf97b8d1254ec21e361559ec90e6d36fc50bb41ebc03356d232fa45622.json", + "objectKey": "5b6a6245a8baa0f97c18f45a086e0199b2cff96500709859639845a8426c5372.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.template.json index 488988cd8..61839fc69 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.template.json @@ -116,7 +116,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34.assets.json index cd4c87973..95f57b11b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34 Template", "source": { "path": "lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/manifest.json index daf8463cd..1f606bb57 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/517108cf97b8d1254ec21e361559ec90e6d36fc50bb41ebc03356d232fa45622.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5b6a6245a8baa0f97c18f45a086e0199b2cff96500709859639845a8426c5372.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -279,7 +279,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -299,7 +300,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -334,7 +336,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/tree.json index 44504b351..72eda7497 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newStreamFromProps.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamkin-newStreamFromProps":{"id":"lamkin-newStreamFromProps","path":"lamkin-newStreamFromProps","children":{"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction","children":{"Code":{"id":"Code","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStream","children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStream/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"},"streamModeDetails":{"streamMode":"ON_DEMAND"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.186.0","metadata":[{"encryption":"MANAGED","streamMode":"ON_DEMAND"}]}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamkin-newStreamFromProps/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-newStreamFromProps/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamkin-newStreamFromProps/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-newStreamFromProps/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newStreamFromProps/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newStreamFromProps/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newStreamFromProps/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newStreamFromProps/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-newStreamFromProps":{"id":"lamkin-newStreamFromProps","path":"lamkin-newStreamFromProps","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED","streamMode":"ON_DEMAND"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"},"streamModeDetails":{"streamMode":"ON_DEMAND"}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newStreamFromProps/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Integ":{"id":"Integ","path":"lamkin-newStreamFromProps/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-newStreamFromProps/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-newStreamFromProps/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-newStreamFromProps/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newStreamFromProps/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newStreamFromProps/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newStreamFromProps/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newStreamFromProps/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.assets.json index ef18b279d..b6e8d779e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "0f930f2bb25e9a7a29703e77440976f66a69253fef981888092683d90c983648": { + "4c1274ecddb61785837db1ce06ea5ca4f03023c24a3859d8911ae32a235677ec": { "displayName": "lamkin-newVpc Template", "source": { "path": "lamkin-newVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-d2a23936": { + "current_account-current_region-104effe2": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0f930f2bb25e9a7a29703e77440976f66a69253fef981888092683d90c983648.json", + "objectKey": "4c1274ecddb61785837db1ce06ea5ca4f03023c24a3859d8911ae32a235677ec.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.template.json index 0bd8f5174..6e0133901 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.template.json @@ -167,7 +167,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/manifest.json index 710d6724a..02080da89 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0f930f2bb25e9a7a29703e77440976f66a69253fef981888092683d90c983648.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4c1274ecddb61785837db1ce06ea5ca4f03023c24a3859d8911ae32a235677ec.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/tree.json index d4da9318f..99389eeb4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-newVpc":{"id":"lamkin-newVpc","path":"lamkin-newVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-newVpc/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamkin-newVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-newVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Vpc":{"id":"Vpc","path":"lamkin-newVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamkin-newVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamkin-newVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-newVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamkin-newVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-newVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-newVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-newVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamkin-newVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-newVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamkin-newVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-newVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-newVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-newVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamkin-newVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamkin-newVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-newVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamkin-newVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-newVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_STREAMS":{"id":"KINESIS_STREAMS","path":"lamkin-newVpc/Vpc/KINESIS_STREAMS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/KINESIS_STREAMS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamkinnewVpcKINESISSTREAMSsecuritygroup5C800E5E","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-streams"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamkin-newVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamkin-newVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamkin-newVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamkin-newVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamkin-newVpc-KINESIS_STREAMS-security-group":{"id":"lamkin-newVpc-KINESIS_STREAMS-security-group","path":"lamkin-newVpc/lamkin-newVpc-KINESIS_STREAMS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/lamkin-newVpc-KINESIS_STREAMS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-newVpc/lamkin-newVpc-KINESIS_STREAMS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamkin-newVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-newVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-newVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-newVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-newVpc":{"id":"lamkin-newVpc","path":"lamkin-newVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-newVpc/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamkin-newVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-newVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Vpc":{"id":"Vpc","path":"lamkin-newVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamkin-newVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamkin-newVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-newVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamkin-newVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-newVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-newVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-newVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamkin-newVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-newVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamkin-newVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-newVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-newVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-newVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamkin-newVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamkin-newVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-newVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamkin-newVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-newVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamkin-newVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_STREAMS":{"id":"KINESIS_STREAMS","path":"lamkin-newVpc/Vpc/KINESIS_STREAMS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/Vpc/KINESIS_STREAMS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamkinnewVpcKINESISSTREAMSsecuritygroup5C800E5E","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-streams"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamkin-newVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamkin-newVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamkin-newVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamkin-newVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamkin-newVpc-KINESIS_STREAMS-security-group":{"id":"lamkin-newVpc-KINESIS_STREAMS-security-group","path":"lamkin-newVpc/lamkin-newVpc-KINESIS_STREAMS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpc/lamkin-newVpc-KINESIS_STREAMS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-newVpc/lamkin-newVpc-KINESIS_STREAMS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamkin-newVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-newVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-newVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-newVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.assets.json index 6c40a8251..36189b1ff 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.assets.json @@ -29,16 +29,16 @@ } } }, - "e93ead385e98075b2ee53b465779cb9d476f25f67eeecf006c64e23e565c3d7b": { + "3a5fdf975eb8752f64f453154440f279b3ea5d6d428b876acc15b3aae72c7d09": { "displayName": "lamkin-newVpcFromProps Template", "source": { "path": "lamkin-newVpcFromProps.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-0e7a7179": { + "current_account-current_region-3279f02c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "e93ead385e98075b2ee53b465779cb9d476f25f67eeecf006c64e23e565c3d7b.json", + "objectKey": "3a5fdf975eb8752f64f453154440f279b3ea5d6d428b876acc15b3aae72c7d09.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.template.json index 52b4808de..72ede53bf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.template.json @@ -167,7 +167,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/manifest.json index 9ec9a89c4..117ccae62 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e93ead385e98075b2ee53b465779cb9d476f25f67eeecf006c64e23e565c3d7b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3a5fdf975eb8752f64f453154440f279b3ea5d6d428b876acc15b3aae72c7d09.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/tree.json index bb63ac084..c61290e76 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-newVpcFromProps.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-newVpcFromProps":{"id":"lamkin-newVpcFromProps","path":"lamkin-newVpcFromProps","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Vpc":{"id":"Vpc","path":"lamkin-newVpcFromProps/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamkin-newVpcFromProps/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamkin-newVpcFromProps/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-newVpcFromProps/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamkin-newVpcFromProps/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-newVpcFromProps/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_STREAMS":{"id":"KINESIS_STREAMS","path":"lamkin-newVpcFromProps/Vpc/KINESIS_STREAMS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/KINESIS_STREAMS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamkinnewVpcFromPropsKINESISSTREAMSsecuritygroup10DC8B01","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-streams"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamkin-newVpcFromProps/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamkin-newVpcFromProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamkin-newVpcFromProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamkin-newVpcFromProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamkin-newVpcFromProps-KINESIS_STREAMS-security-group":{"id":"lamkin-newVpcFromProps-KINESIS_STREAMS-security-group","path":"lamkin-newVpcFromProps/lamkin-newVpcFromProps-KINESIS_STREAMS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/lamkin-newVpcFromProps-KINESIS_STREAMS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-newVpcFromProps/lamkin-newVpcFromProps-KINESIS_STREAMS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamkin-newVpcFromProps/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-newVpcFromProps/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-newVpcFromProps/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-newVpcFromProps/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newVpcFromProps/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newVpcFromProps/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newVpcFromProps/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newVpcFromProps/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-newVpcFromProps":{"id":"lamkin-newVpcFromProps","path":"lamkin-newVpcFromProps","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Vpc":{"id":"Vpc","path":"lamkin-newVpcFromProps/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamkin-newVpcFromProps/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamkin-newVpcFromProps/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamkin-newVpcFromProps/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-newVpcFromProps/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamkin-newVpcFromProps/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamkin-newVpcFromProps/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"KINESIS_STREAMS":{"id":"KINESIS_STREAMS","path":"lamkin-newVpcFromProps/Vpc/KINESIS_STREAMS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/Vpc/KINESIS_STREAMS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamkin-newVpcFromProps/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamkinnewVpcFromPropsKINESISSTREAMSsecuritygroup10DC8B01","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".kinesis-streams"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamkin-newVpcFromProps/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamkin-newVpcFromProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamkin-newVpcFromProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamkin-newVpcFromProps/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamkin-newVpcFromProps-KINESIS_STREAMS-security-group":{"id":"lamkin-newVpcFromProps-KINESIS_STREAMS-security-group","path":"lamkin-newVpcFromProps/lamkin-newVpcFromProps-KINESIS_STREAMS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-newVpcFromProps/lamkin-newVpcFromProps-KINESIS_STREAMS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamkin-newVpcFromProps/lamkin-newVpcFromProps-KINESIS_STREAMS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamkin-newVpcFromProps/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-newVpcFromProps/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-newVpcFromProps/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-newVpcFromProps/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newVpcFromProps/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newVpcFromProps/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-newVpcFromProps/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-newVpcFromProps/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs new file mode 100644 index 000000000..4ecf51ccf --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs @@ -0,0 +1,15 @@ +import { KinesisClient, PutRecordCommand } from "@aws-sdk/client-kinesis"; + +const kinesis = new KinesisClient({ region: process.env.REGION }); +const streamName = process.env.KINESIS_DATASTREAM_NAME; + +export const handler = async(event) => { + + const result = await kinesis.send(new PutRecordCommand({ + StreamName: streamName, + Data: Buffer.from('hello from solutions constructs'), + PartitionKey: '1' + })); + + console.log(JSON.stringify(result)); +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/integ.json index fa21e3096..37648716e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamkin-noArguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamkin-noArguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.assets.json index d5adf78c9..a8d0f6e86 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf": { + "displayName": "test-lambda-kinesisstreams/LambdaFunction/Code", "source": { "path": "asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-0b4831fe": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "9b8347ad4c5bd21e7a9624f2c09717fe537e289623b1ea6029f5affcf61982db": { + "fe2e19cb8af67e947040991b692842876ccbd967c197d87ba274f8e8ea9e4dca": { + "displayName": "lamkin-noArguments Template", "source": { "path": "lamkin-noArguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d71a692d": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "9b8347ad4c5bd21e7a9624f2c09717fe537e289623b1ea6029f5affcf61982db.json", + "objectKey": "fe2e19cb8af67e947040991b692842876ccbd967c197d87ba274f8e8ea9e4dca.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.template.json index 39e550178..744116a78 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.template.json @@ -116,7 +116,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2.assets.json index d107888b3..95ba9d59c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2 Template", "source": { "path": "lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/manifest.json index b639b1f0b..d6398b994 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9b8347ad4c5bd21e7a9624f2c09717fe537e289623b1ea6029f5affcf61982db.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/fe2e19cb8af67e947040991b692842876ccbd967c197d87ba274f8e8ea9e4dca.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -278,7 +278,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -298,7 +299,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -333,7 +335,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/tree.json index 1e1dbbeec..97958617c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisstreams/test/integ.lamkin-noArguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamkin-noArguments":{"id":"lamkin-noArguments","path":"lamkin-noArguments","children":{"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-noArguments/test-lambda-kinesisstreams","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction","children":{"Code":{"id":"Code","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStream","children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStream/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.186.0","metadata":[{"encryption":"MANAGED"}]}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamkin-noArguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-noArguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamkin-noArguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-noArguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-noArguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-noArguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-noArguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-noArguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamkin-noArguments":{"id":"lamkin-noArguments","path":"lamkin-noArguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-kinesisstreams":{"id":"test-lambda-kinesisstreams","path":"lamkin-noArguments/test-lambda-kinesisstreams","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-kinesisstreams.LambdaToKinesisStreams","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kinesis:ListShards","kinesis:PutRecord","kinesis:PutRecords"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdakinesisstreamsKinesisStream11A82116","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","KINESIS_DATASTREAM_NAME":{"Ref":"testlambdakinesisstreamsKinesisStream11A82116"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdakinesisstreamsLambdaFunctioninlinePolicyAddedToExecutionRole022FB8950","roles":[{"Ref":"testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"}]}}}}}}},"KinesisStream":{"id":"KinesisStream","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStream","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.Stream","version":"2.223.0","metadata":[{"encryption":"MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStream/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kinesis.CfnStream","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Kinesis::Stream","aws:cdk:cloudformation:props":{"retentionPeriodHours":24,"shardCount":1,"streamEncryption":{"encryptionType":"KMS","keyId":"alias/aws/kinesis"}}}}}},"KinesisStreamGetRecordsIteratorAgeAlarm":{"id":"KinesisStreamGetRecordsIteratorAgeAlarm","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStreamGetRecordsIteratorAgeAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"GetRecords.IteratorAgeMilliseconds","namespace":"AWS/Kinesis","period":300,"statistic":"Maximum","threshold":43200000}}}}},"KinesisStreamReadProvisionedThroughputExceededAlarm":{"id":"KinesisStreamReadProvisionedThroughputExceededAlarm","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamkin-noArguments/test-lambda-kinesisstreams/KinesisStreamReadProvisionedThroughputExceededAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Consumer Application is Reading at a Slower Rate Than Expected.","comparisonOperator":"GreaterThanThreshold","evaluationPeriods":1,"metricName":"ReadProvisionedThroughputExceeded","namespace":"AWS/Kinesis","period":300,"statistic":"Average","threshold":0}}}}}}},"Integ":{"id":"Integ","path":"lamkin-noArguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamkin-noArguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamkin-noArguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamkin-noArguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-noArguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-noArguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamkin-noArguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamkin-noArguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/README.adoc index 74518609b..a9c856ca7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/README.adoc @@ -49,7 +49,7 @@ import * as lambda from "aws-cdk-lib/aws-lambda"; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }; @@ -103,7 +103,7 @@ import software.amazon.awsconstructs.services.lambdaopensearch.*; new LambdaToOpenSearch(this, "sample", new LambdaToOpenSearchProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.assets.json index 5a42e0c23..501355f86 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.assets.json @@ -29,16 +29,16 @@ } } }, - "fa23b984413c7b0958320358830c7bed9ac8a3e2cf6ce563f085502ef3edb4d7": { + "b6563877cb755cfc0c1e76aaedde25e0607bc31c7b50af7f118be0137c184681": { "displayName": "lamopn-cluster-config Template", "source": { "path": "lamopn-cluster-config.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-08ca512d": { + "current_account-current_region-ff14fe3b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "fa23b984413c7b0958320358830c7bed9ac8a3e2cf6ce563f085502ef3edb4d7.json", + "objectKey": "b6563877cb755cfc0c1e76aaedde25e0607bc31c7b50af7f118be0137c184681.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.template.json index 36654165f..620d3bd70 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.template.json @@ -156,7 +156,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -789,6 +789,9 @@ ] } }, + "DependsOn": [ + "testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/manifest.json index 96f989a55..0bd5fbff3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/fa23b984413c7b0958320358830c7bed9ac8a3e2cf6ce563f085502ef3edb4d7.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b6563877cb755cfc0c1e76aaedde25e0607bc31c7b50af7f118be0137c184681.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/tree.json index b41f21ae6..61cdcabfa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-cluster-config.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-cluster-config":{"id":"lamopn-cluster-config","path":"lamopn-cluster-config","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-cluster-config/test-lambda-opensearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamopn-cluster-config/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamopn-cluster-config/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-cluster-config/test-lambda-opensearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-cluster-config/test-lambda-opensearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-cluster-config/test-lambda-opensearch/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"instanceCount":2,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2}},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamopn-cluster-config/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamopn-cluster-config/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-cluster-config/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-cluster-config/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-cluster-config/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-cluster-config/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-cluster-config/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamopn-cluster-config/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-cluster-config/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-cluster-config/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-cluster-config/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-cluster-config/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-cluster-config/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamopn-cluster-config/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamopn-cluster-config/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-cluster-config/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamopn-cluster-config/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-cluster-config/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamopn-cluster-config/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamopn-cluster-config/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamopn-cluster-config/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamopn-cluster-config/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamopn-cluster-config/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-cluster-config/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-cluster-config/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-cluster-config/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-cluster-config/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-cluster-config/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-cluster-config/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-cluster-config/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-cluster-config":{"id":"lamopn-cluster-config","path":"lamopn-cluster-config","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-cluster-config/test-lambda-opensearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamopn-cluster-config/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamopn-cluster-config/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-cluster-config/test-lambda-opensearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-cluster-config/test-lambda-opensearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-cluster-config/test-lambda-opensearch/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"instanceCount":2,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2}},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-cluster-config/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamopn-cluster-config/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamopn-cluster-config/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-cluster-config/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-cluster-config/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-cluster-config/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-cluster-config/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-cluster-config/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamopn-cluster-config/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-cluster-config/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-cluster-config/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-cluster-config/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-cluster-config/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-cluster-config/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamopn-cluster-config/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamopn-cluster-config/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-cluster-config/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamopn-cluster-config/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-cluster-config/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-cluster-config/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamopn-cluster-config/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamopn-cluster-config/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamopn-cluster-config/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamopn-cluster-config/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamopn-cluster-config/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamopn-cluster-config/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-cluster-config/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-cluster-config/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-cluster-config/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-cluster-config/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-cluster-config/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-cluster-config/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-cluster-config/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.assets.json index 227b409e4..acb850b7e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.assets.json @@ -29,16 +29,16 @@ } } }, - "4655052a70871e0bbdfabb498dbb2a6df965d63a515107453bc3c4721c035508": { + "4136243ee02fc62a4eb0657e291a3b662d0c9b3d6209f0c13be6daed8ccbd147": { "displayName": "lamopn-disabled-zone-awareness Template", "source": { "path": "lamopn-disabled-zone-awareness.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-66f03470": { + "current_account-current_region-b8d422aa": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4655052a70871e0bbdfabb498dbb2a6df965d63a515107453bc3c4721c035508.json", + "objectKey": "4136243ee02fc62a4eb0657e291a3b662d0c9b3d6209f0c13be6daed8ccbd147.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.template.json index 3e3c41923..7369eca6f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.template.json @@ -156,7 +156,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -778,6 +778,9 @@ ] } }, + "DependsOn": [ + "testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/manifest.json index f0940d324..c998ba673 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4655052a70871e0bbdfabb498dbb2a6df965d63a515107453bc3c4721c035508.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4136243ee02fc62a4eb0657e291a3b662d0c9b3d6209f0c13be6daed8ccbd147.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/tree.json index c70b45f92..0e5457f84 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-disabled-zone-awareness.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-disabled-zone-awareness":{"id":"lamopn-disabled-zone-awareness","path":"lamopn-disabled-zone-awareness","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamopn-disabled-zone-awareness/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterCount":3,"dedicatedMasterEnabled":true,"instanceCount":3,"zoneAwarenessEnabled":false},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamopn-disabled-zone-awareness/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamopn-disabled-zone-awareness/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamopn-disabled-zone-awareness/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamopn-disabled-zone-awareness/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamopn-disabled-zone-awareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamopn-disabled-zone-awareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamopn-disabled-zone-awareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamopn-disabled-zone-awareness/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-disabled-zone-awareness/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-disabled-zone-awareness/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-disabled-zone-awareness":{"id":"lamopn-disabled-zone-awareness","path":"lamopn-disabled-zone-awareness","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamopn-disabled-zone-awareness/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterCount":3,"dedicatedMasterEnabled":true,"instanceCount":3,"zoneAwarenessEnabled":false},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamopn-disabled-zone-awareness/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"maxAzs":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-disabled-zone-awareness/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamopn-disabled-zone-awareness/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamopn-disabled-zone-awareness/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-disabled-zone-awareness/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamopn-disabled-zone-awareness/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamopn-disabled-zone-awareness/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamopn-disabled-zone-awareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamopn-disabled-zone-awareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamopn-disabled-zone-awareness/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamopn-disabled-zone-awareness/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-disabled-zone-awareness/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-disabled-zone-awareness/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-disabled-zone-awareness/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js new file mode 100644 index 000000000..e59c6e167 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js @@ -0,0 +1,73 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +var AWS = require('aws-sdk'); +var path = require('path'); + +console.log('Loading function'); + +var openSearchDomain = { + endpoint: process.env.DOMAIN_ENDPOINT, + region: process.env.AWS_REGION, + index: 'records', + doctype: 'movie' +}; + +var creds = new AWS.EnvironmentCredentials('AWS'); +var endpoint = new AWS.Endpoint(openSearchDomain.endpoint); + +function postDocumentToOpenSearch(doc, context) { + var req = new AWS.HttpRequest(endpoint); + + req.method = 'POST'; + req.path = path.join('/', openSearchDomain.index, openSearchDomain.doctype); + req.region = openSearchDomain.region; + req.body = doc; + req.headers['presigned-expires'] = false; + req.headers['Host'] = openSearchDomain.endpoint; + req.headers['Content-Type'] = 'application/json'; + + // Sign the request (Sigv4) + var signer = new AWS.Signers.V4(req, 'es'); + signer.addAuthorization(creds, new Date()); + + // Post document to the OpenSearch Service + var send = new AWS.NodeHttpClient(); + + send.handleRequest(req, null, (httpResp) => { + var body = ''; + httpResp.on('data', (chunk) => { + body += chunk; + }); + httpResp.on('end', (chunk) => { + console.log('All movie records added to the OpenSearch Service.'); + context.succeed(); + }); + }, (err) => { + console.log('Error: ' + err); + context.fail(); + }); +} + +exports.handler = (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); + postDocumentToOpenSearch("{ \"title\": \"Moby Dick\" }", context); + postDocumentToOpenSearch("{ \"title\": \"A Tale of Two Cities\" }", context); + postDocumentToOpenSearch("{ \"title\": \"The Phantom of the Opera\" }", context); + + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello from AWS Solutions Constructs!\n` + }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/integ.json index 0e7d59d68..e4bc0773f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamopn-domain-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamopn-domain-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamopndomainargumentsIntegDefaultTestDeployAssert47534E1E" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopn-domain-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopn-domain-arguments.assets.json index e5c5ecb20..6c164e522 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopn-domain-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopn-domain-arguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0": { + "displayName": "test-lambda-opensearch/LambdaFunction/Code", "source": { "path": "asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-72198890": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "a87706d30d8a239a6aab9d52e1f8cf7976ba00efce486d17465c1402b6c2bdbc": { + "b82d02e9ffea25a5df7ae486a79c56cb0a5b2880ad0e353223812110a065b16a": { + "displayName": "lamopn-domain-arguments Template", "source": { "path": "lamopn-domain-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-eb8456b8": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a87706d30d8a239a6aab9d52e1f8cf7976ba00efce486d17465c1402b6c2bdbc.json", + "objectKey": "b82d02e9ffea25a5df7ae486a79c56cb0a5b2880ad0e353223812110a065b16a.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopn-domain-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopn-domain-arguments.template.json index 8d94a394a..dff1ab4c5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopn-domain-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopn-domain-arguments.template.json @@ -89,7 +89,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -679,6 +679,9 @@ "AutomatedSnapshotStartHour": 1 } }, + "DependsOn": [ + "testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopndomainargumentsIntegDefaultTestDeployAssert47534E1E.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopndomainargumentsIntegDefaultTestDeployAssert47534E1E.assets.json index 0040ad549..bfb4a44ab 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopndomainargumentsIntegDefaultTestDeployAssert47534E1E.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/lamopndomainargumentsIntegDefaultTestDeployAssert47534E1E.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamopndomainargumentsIntegDefaultTestDeployAssert47534E1E Template", "source": { "path": "lamopndomainargumentsIntegDefaultTestDeployAssert47534E1E.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/manifest.json index 9cf6164fd..95bb59fdf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamopndomainargumentsIntegDefaultTestDeployAssert47534E1E.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a87706d30d8a239a6aab9d52e1f8cf7976ba00efce486d17465c1402b6c2bdbc.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b82d02e9ffea25a5df7ae486a79c56cb0a5b2880ad0e353223812110a065b16a.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -355,7 +355,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -375,7 +376,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -395,7 +397,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -415,7 +418,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -435,7 +439,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -455,7 +460,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -475,7 +481,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -495,7 +502,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -515,7 +523,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -541,15 +550,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359": [ - { - "type": "aws:cdk:logicalId", - "data": "testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "lamopn-domain-arguments" @@ -559,7 +559,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/tree.json index 892cacc5d..6af822c31 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-domain-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamopn-domain-arguments":{"id":"lamopn-domain-arguments","path":"lamopn-domain-arguments","children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-domain-arguments/test-lambda-opensearch","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction","children":{"Code":{"id":"Code","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoUserPool","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoUserPool/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.186.0","metadata":["*"]}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoUserPoolClient","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoUserPoolClient/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.186.0","metadata":[{"userPool":"*"}]}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoIdentityPool","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.186.0"}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-domain-arguments/test-lambda-opensearch/UserPoolDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.186.0"}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoAuthorizedRole","children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoAuthorizedRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-domain-arguments/test-lambda-opensearch/IdentityPoolRoleMapping","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.186.0"}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole","children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-domain-arguments/test-lambda-opensearch/OpenSearchDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.186.0"}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/StatusRedAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/StatusRedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/StatusYellowAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/StatusYellowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/CPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamopn-domain-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-domain-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamopn-domain-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-domain-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-domain-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-domain-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-domain-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-domain-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-domain-arguments":{"id":"lamopn-domain-arguments","path":"lamopn-domain-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-domain-arguments/test-lambda-opensearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-domain-arguments/test-lambda-opensearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-domain-arguments/test-lambda-opensearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-domain-arguments/test-lambda-opensearch/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-domain-arguments/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-domain-arguments/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"lamopn-domain-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-domain-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-domain-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-domain-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-domain-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-domain-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-domain-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-domain-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.assets.json index e8e188c8a..0156210c2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.assets.json @@ -31,16 +31,16 @@ } } }, - "8f0f5d9b56344a0ace76f1d5f10d97b4700128bfc8348a7ad0dde6566c0ea7a8": { + "ca56e536efce0bd74d3a41106eeefc42d2a0cbfa7063ec4a9a114cf3f675088d": { "displayName": "lamopn-existing-vpc Template", "source": { "path": "lamopn-existing-vpc.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-88bf100b": { + "current_account-us-east-1-a5e2e124": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "8f0f5d9b56344a0ace76f1d5f10d97b4700128bfc8348a7ad0dde6566c0ea7a8.json", + "objectKey": "ca56e536efce0bd74d3a41106eeefc42d2a0cbfa7063ec4a9a114cf3f675088d.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.template.json index 23a4b8b85..54b221189 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.template.json @@ -801,7 +801,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -1438,6 +1438,9 @@ ] } }, + "DependsOn": [ + "testlambdaelasticsearchkibana4CognitoDashboardConfigureRoleB36C775C" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/manifest.json index e06eb5546..60eee86c3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/8f0f5d9b56344a0ace76f1d5f10d97b4700128bfc8348a7ad0dde6566c0ea7a8.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/ca56e536efce0bd74d3a41106eeefc42d2a0cbfa7063ec4a9a114cf3f675088d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/tree.json index 30433ad72..af3f4885a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-existing-vpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-existing-vpc":{"id":"lamopn-existing-vpc","path":"lamopn-existing-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamopn-existing-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamopn-existing-vpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamopn-existing-vpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamopn-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamopn-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamopn-existing-vpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamopn-existing-vpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamopn-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamopn-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-existing-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamopn-existing-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-existing-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamopn-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamopn-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamopn-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamopn-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-elasticsearch-kibana4":{"id":"test-lambda-elasticsearch-kibana4","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleDefaultPolicyA5AD88E5","roles":[{"Ref":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana4OpenSearchDomain94EAD3A3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4ReplaceDefaultSecurityGroupsecuritygroupA79E2B92","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4LambdaFunctioninlinePolicyAddedToExecutionRole0CFA48A09","roles":[{"Ref":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPoolClientABBF34C4"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoAuthorizedRoleA7D6B392","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoDashboardConfigureRoleB36C775C","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4CognitoDashboardConfigureRolePolicy1D82A101","roles":[{"Ref":"testlambdaelasticsearchkibana4CognitoDashboardConfigureRoleB36C775C"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoAuthorizedRoleA7D6B392","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoDashboardConfigureRoleB36C775C","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4ReplaceDefaultSecurityGroupsecuritygroupA79E2B92","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"lamopn-existing-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-existing-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-existing-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-existing-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-existing-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-existing-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-existing-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-existing-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-existing-vpc":{"id":"lamopn-existing-vpc","path":"lamopn-existing-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamopn-existing-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamopn-existing-vpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamopn-existing-vpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamopn-existing-vpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamopn-existing-vpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamopn-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamopn-existing-vpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamopn-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamopn-existing-vpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamopn-existing-vpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamopn-existing-vpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamopn-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamopn-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-existing-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamopn-existing-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-existing-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamopn-existing-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamopn-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamopn-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamopn-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamopn-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-elasticsearch-kibana4":{"id":"test-lambda-elasticsearch-kibana4","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleDefaultPolicyA5AD88E5","roles":[{"Ref":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaelasticsearchkibana4OpenSearchDomain94EAD3A3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4ReplaceDefaultSecurityGroupsecuritygroupA79E2B92","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4LambdaFunctioninlinePolicyAddedToExecutionRole0CFA48A09","roles":[{"Ref":"testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPoolClientABBF34C4"},"providerName":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoAuthorizedRoleA7D6B392","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoDashboardConfigureRoleB36C775C","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaelasticsearchkibana4CognitoDashboardConfigureRolePolicy1D82A101","roles":[{"Ref":"testlambdaelasticsearchkibana4CognitoDashboardConfigureRoleB36C775C"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoAuthorizedRoleA7D6B392","Arn"]},{"Fn::GetAtt":["testlambdaelasticsearchkibana4LambdaFunctionServiceRoleA52BB7F9","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoIdentityPool76EE9793"},"userPoolId":{"Ref":"testlambdaelasticsearchkibana4CognitoUserPool37A5CDE1"},"roleArn":{"Fn::GetAtt":["testlambdaelasticsearchkibana4CognitoDashboardConfigureRoleB36C775C","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaelasticsearchkibana4ReplaceDefaultSecurityGroupsecuritygroupA79E2B92","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-existing-vpc/test-lambda-elasticsearch-kibana4/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"lamopn-existing-vpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-existing-vpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-existing-vpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-existing-vpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-existing-vpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-existing-vpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-existing-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-existing-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js new file mode 100644 index 000000000..e59c6e167 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js @@ -0,0 +1,73 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +var AWS = require('aws-sdk'); +var path = require('path'); + +console.log('Loading function'); + +var openSearchDomain = { + endpoint: process.env.DOMAIN_ENDPOINT, + region: process.env.AWS_REGION, + index: 'records', + doctype: 'movie' +}; + +var creds = new AWS.EnvironmentCredentials('AWS'); +var endpoint = new AWS.Endpoint(openSearchDomain.endpoint); + +function postDocumentToOpenSearch(doc, context) { + var req = new AWS.HttpRequest(endpoint); + + req.method = 'POST'; + req.path = path.join('/', openSearchDomain.index, openSearchDomain.doctype); + req.region = openSearchDomain.region; + req.body = doc; + req.headers['presigned-expires'] = false; + req.headers['Host'] = openSearchDomain.endpoint; + req.headers['Content-Type'] = 'application/json'; + + // Sign the request (Sigv4) + var signer = new AWS.Signers.V4(req, 'es'); + signer.addAuthorization(creds, new Date()); + + // Post document to the OpenSearch Service + var send = new AWS.NodeHttpClient(); + + send.handleRequest(req, null, (httpResp) => { + var body = ''; + httpResp.on('data', (chunk) => { + body += chunk; + }); + httpResp.on('end', (chunk) => { + console.log('All movie records added to the OpenSearch Service.'); + context.succeed(); + }); + }, (err) => { + console.log('Error: ' + err); + context.fail(); + }); +} + +exports.handler = (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); + postDocumentToOpenSearch("{ \"title\": \"Moby Dick\" }", context); + postDocumentToOpenSearch("{ \"title\": \"A Tale of Two Cities\" }", context); + postDocumentToOpenSearch("{ \"title\": \"The Phantom of the Opera\" }", context); + + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello from AWS Solutions Constructs!\n` + }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/integ.json index ec3814ac9..723c3c5c0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamopn-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamopn-no-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamopnnoargumentsIntegDefaultTestDeployAssert4290A592" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopn-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopn-no-arguments.assets.json index 2a1c40ffa..e798168e9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopn-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopn-no-arguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0": { + "displayName": "test-lambda-opensearch/LambdaFunction/Code", "source": { "path": "asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-72198890": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "7dcc3480c47af313175a3fe11771f2b0ef78613622e969d1df03a40cd5364f0d": { + "caf7c8ba5620a2a6a6549d162202ed50b401e52cba09ced465a553a22a2015ce": { + "displayName": "lamopn-no-arguments Template", "source": { "path": "lamopn-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-138dc88f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7dcc3480c47af313175a3fe11771f2b0ef78613622e969d1df03a40cd5364f0d.json", + "objectKey": "caf7c8ba5620a2a6a6549d162202ed50b401e52cba09ced465a553a22a2015ce.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopn-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopn-no-arguments.template.json index 63c5d90f4..403c0ccb8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopn-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopn-no-arguments.template.json @@ -89,7 +89,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -679,6 +679,9 @@ "AutomatedSnapshotStartHour": 1 } }, + "DependsOn": [ + "testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopnnoargumentsIntegDefaultTestDeployAssert4290A592.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopnnoargumentsIntegDefaultTestDeployAssert4290A592.assets.json index 0c38a38ae..22413cac1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopnnoargumentsIntegDefaultTestDeployAssert4290A592.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/lamopnnoargumentsIntegDefaultTestDeployAssert4290A592.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamopnnoargumentsIntegDefaultTestDeployAssert4290A592 Template", "source": { "path": "lamopnnoargumentsIntegDefaultTestDeployAssert4290A592.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/manifest.json index 15e5a2087..0b6c25b52 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamopnnoargumentsIntegDefaultTestDeployAssert4290A592.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7dcc3480c47af313175a3fe11771f2b0ef78613622e969d1df03a40cd5364f0d.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/caf7c8ba5620a2a6a6549d162202ed50b401e52cba09ced465a553a22a2015ce.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -355,7 +355,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -375,7 +376,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -395,7 +397,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -415,7 +418,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -435,7 +439,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -455,7 +460,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -475,7 +481,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -495,7 +502,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -515,7 +523,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -541,15 +550,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359": [ - { - "type": "aws:cdk:logicalId", - "data": "testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "lamopn-no-arguments" @@ -559,7 +559,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/tree.json index f690da2dd..8ca7f34b0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamopn-no-arguments":{"id":"lamopn-no-arguments","path":"lamopn-no-arguments","children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-no-arguments/test-lambda-opensearch","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction","children":{"Code":{"id":"Code","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoUserPool","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoUserPool/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.186.0","metadata":["*"]}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoUserPoolClient","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoUserPoolClient/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.186.0","metadata":[{"userPool":"*"}]}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoIdentityPool","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.186.0"}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-no-arguments/test-lambda-opensearch/UserPoolDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.186.0"}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoAuthorizedRole","children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoAuthorizedRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-no-arguments/test-lambda-opensearch/IdentityPoolRoleMapping","attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.186.0"}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole","children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-no-arguments/test-lambda-opensearch/OpenSearchDomain","attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.186.0"}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/StatusRedAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/StatusRedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/StatusYellowAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/StatusYellowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/CPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamopn-no-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-no-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamopn-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-no-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-no-arguments":{"id":"lamopn-no-arguments","path":"lamopn-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-no-arguments/test-lambda-opensearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-no-arguments/test-lambda-opensearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-no-arguments/test-lambda-opensearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-no-arguments/test-lambda-opensearch/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-no-arguments/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-no-arguments/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Integ":{"id":"Integ","path":"lamopn-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.assets.json index 708172817..ee01f5a52 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.assets.json @@ -31,16 +31,16 @@ } } }, - "6a3c58ed0fb8c5ded9c8b6a05d6462069d860d65ebed488c83e39c3b643a9475": { + "33de8443bf7bd369a99307ed917057e1a10948afa1edd334499d0e6df5cbcfa2": { "displayName": "lamopn-vpc-props Template", "source": { "path": "lamopn-vpc-props.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1-5262ccd2": { + "current_account-us-east-1-d7c64562": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "6a3c58ed0fb8c5ded9c8b6a05d6462069d860d65ebed488c83e39c3b643a9475.json", + "objectKey": "33de8443bf7bd369a99307ed917057e1a10948afa1edd334499d0e6df5cbcfa2.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.template.json index 529073b69..bc69ffc7e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.template.json @@ -156,7 +156,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -789,6 +789,9 @@ ] } }, + "DependsOn": [ + "testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A" + ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/manifest.json index d2aaf513b..2284bbe1e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/6a3c58ed0fb8c5ded9c8b6a05d6462069d860d65ebed488c83e39c3b643a9475.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/33de8443bf7bd369a99307ed917057e1a10948afa1edd334499d0e6df5cbcfa2.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/tree.json index fffa36113..aefca8956 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.lamopn-vpc-props.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-vpc-props":{"id":"lamopn-vpc-props","path":"lamopn-vpc-props","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-vpc-props/test-lambda-opensearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamopn-vpc-props/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamopn-vpc-props/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-vpc-props/test-lambda-opensearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-vpc-props/test-lambda-opensearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-vpc-props/test-lambda-opensearch/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamopn-vpc-props/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"ipAddresses":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamopn-vpc-props/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-vpc-props/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-vpc-props/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-vpc-props/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-vpc-props/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-vpc-props/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamopn-vpc-props/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-vpc-props/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-vpc-props/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-vpc-props/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-vpc-props/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-vpc-props/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamopn-vpc-props/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamopn-vpc-props/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-vpc-props/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamopn-vpc-props/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-vpc-props/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamopn-vpc-props/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamopn-vpc-props/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamopn-vpc-props/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamopn-vpc-props/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamopn-vpc-props/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-vpc-props/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-vpc-props/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-vpc-props/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-vpc-props/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-vpc-props/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-vpc-props/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-vpc-props/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamopn-vpc-props":{"id":"lamopn-vpc-props","path":"lamopn-vpc-props","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-opensearch":{"id":"test-lambda-opensearch","path":"lamopn-vpc-props/test-lambda-opensearch","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-opensearch.LambdaToOpenSearch","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctionServiceRoleDefaultPolicy78C56359","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamopn-vpc-props/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamopn-vpc-props/test-lambda-opensearch/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","DOMAIN_ENDPOINT":{"Fn::GetAtt":["testlambdaopensearchOpenSearchDomainF9CCC3D3","DomainEndpoint"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchLambdaFunctioninlinePolicyAddedToExecutionRole09B870594","roles":[{"Ref":"testlambdaopensearchLambdaFunctionServiceRole4722AB8A"}]}}}}}}},"CognitoUserPool":{"id":"CognitoUserPool","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoUserPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPool","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoUserPool/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPool","aws:cdk:cloudformation:props":{"accountRecoverySetting":{"recoveryMechanisms":[{"name":"verified_phone_number","priority":1},{"name":"verified_email","priority":2}]},"adminCreateUserConfig":{"allowAdminCreateUserOnly":true},"emailVerificationMessage":"The verification code to your new account is {####}","emailVerificationSubject":"Verify your new account","smsVerificationMessage":"The verification code to your new account is {####}","userPoolAddOns":{"advancedSecurityMode":"ENFORCED"},"verificationMessageTemplate":{"defaultEmailOption":"CONFIRM_WITH_CODE","emailMessage":"The verification code to your new account is {####}","emailSubject":"Verify your new account","smsMessage":"The verification code to your new account is {####}"}}}}}},"CognitoUserPoolClient":{"id":"CognitoUserPoolClient","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoUserPoolClient","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.UserPoolClient","version":"2.223.0","metadata":[{"userPool":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoUserPoolClient/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolClient","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolClient","aws:cdk:cloudformation:props":{"allowedOAuthFlows":["implicit","code"],"allowedOAuthFlowsUserPoolClient":true,"allowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"callbackUrLs":["https://example.com"],"supportedIdentityProviders":["COGNITO"],"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}}}},"CognitoIdentityPool":{"id":"CognitoIdentityPool","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoIdentityPool","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPool","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPool","aws:cdk:cloudformation:props":{"allowUnauthenticatedIdentities":false,"cognitoIdentityProviders":[{"clientId":{"Ref":"testlambdaopensearchCognitoUserPoolClient39C21D94"},"providerName":{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","ProviderName"]},"serverSideTokenCheck":true}]}}},"UserPoolDomain":{"id":"UserPoolDomain","path":"lamopn-vpc-props/test-lambda-opensearch/UserPoolDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnUserPoolDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::UserPoolDomain","aws:cdk:cloudformation:props":{"domain":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"}}}},"CognitoAuthorizedRole":{"id":"CognitoAuthorizedRole","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportCognitoAuthorizedRole":{"id":"ImportCognitoAuthorizedRole","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoAuthorizedRole/ImportCognitoAuthorizedRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoAuthorizedRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"cognito-identity.amazonaws.com:aud":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}},"ForAnyValue:StringLike":{"cognito-identity.amazonaws.com:amr":"authenticated"}},"Effect":"Allow","Principal":{"Federated":"cognito-identity.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"CognitoAccessPolicy","policyDocument":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"}}]}}}}},"IdentityPoolRoleMapping":{"id":"IdentityPoolRoleMapping","path":"lamopn-vpc-props/test-lambda-opensearch/IdentityPoolRoleMapping","constructInfo":{"fqn":"aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Cognito::IdentityPoolRoleAttachment","aws:cdk:cloudformation:props":{"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"roles":{"authenticated":{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]}}}}},"CognitoDashboardConfigureRole":{"id":"CognitoDashboardConfigureRole","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]},"children":{"ImportCognitoDashboardConfigureRole":{"id":"ImportCognitoDashboardConfigureRole","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRole/ImportCognitoDashboardConfigureRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"es.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"CognitoDashboardConfigureRolePolicy":{"id":"CognitoDashboardConfigureRolePolicy","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CognitoDashboardConfigureRolePolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["cognito-identity:DescribeIdentityPool","cognito-identity:GetIdentityPoolRoles","cognito-identity:SetIdentityPoolRoles","cognito-identity:UpdateIdentityPool","cognito-idp:AdminInitiateAuth","cognito-idp:AdminUserGlobalSignOut","cognito-idp:CreateUserPoolClient","cognito-idp:DeleteUserPoolClient","cognito-idp:DescribeUserPool","cognito-idp:DescribeUserPoolClient","cognito-idp:ListUserPoolClients","es:UpdateDomainConfig"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdaopensearchCognitoUserPoolA09096F9","Arn"]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":cognito-identity:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":identitypool/",{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]}]]}]},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cognito-identity.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdaopensearchCognitoDashboardConfigureRolePolicyC9C6A6A2","roles":[{"Ref":"testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A"}]}}}}},"OpenSearchDomain":{"id":"OpenSearchDomain","path":"lamopn-vpc-props/test-lambda-opensearch/OpenSearchDomain","constructInfo":{"fqn":"aws-cdk-lib.aws_opensearchservice.CfnDomain","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::OpenSearchService::Domain","aws:cdk:cloudformation:props":{"accessPolicies":{"Statement":[{"Action":"es:ESHttp*","Effect":"Allow","Principal":{"AWS":[{"Fn::GetAtt":["testlambdaopensearchCognitoAuthorizedRole58A1ED44","Arn"]},{"Fn::GetAtt":["testlambdaopensearchLambdaFunctionServiceRole4722AB8A","Arn"]}]},"Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":es:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":domain/",{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"/*"]]}}],"Version":"2012-10-17"},"clusterConfig":{"dedicatedMasterEnabled":true,"dedicatedMasterCount":3,"zoneAwarenessEnabled":true,"zoneAwarenessConfig":{"availabilityZoneCount":2},"instanceCount":2},"cognitoOptions":{"enabled":true,"identityPoolId":{"Ref":"testlambdaopensearchCognitoIdentityPool0B1FB311"},"userPoolId":{"Ref":"testlambdaopensearchCognitoUserPoolA09096F9"},"roleArn":{"Fn::GetAtt":["testlambdaopensearchCognitoDashboardConfigureRole1F2B7B7A","Arn"]}},"domainEndpointOptions":{"enforceHttps":true,"tlsSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"},"domainName":{"Fn::Join":["-",["dmn",{"Fn::Select":[4,{"Fn::Split":["-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]}]}]]},"ebsOptions":{"ebsEnabled":true,"volumeSize":10},"encryptionAtRestOptions":{"enabled":true},"engineVersion":"OpenSearch_1.3","nodeToNodeEncryptionOptions":{"enabled":true},"snapshotOptions":{"automatedSnapshotStartHour":1},"vpcOptions":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdaopensearchReplaceDefaultSecurityGroupsecuritygroupB44718EC","GroupId"]}]}}}},"StatusRedAlarm":{"id":"StatusRedAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/StatusRedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/StatusRedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one primary shard and its replicas are not allocated to a node. ","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.red","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"StatusYellowAlarm":{"id":"StatusYellowAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/StatusYellowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/StatusYellowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"At least one replica shard is not allocated to a node.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterStatus.yellow","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"FreeStorageSpaceTooLowAlarm":{"id":"FreeStorageSpaceTooLowAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/FreeStorageSpaceTooLowAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"A node in your cluster is down to 20 GiB of free storage space.","comparisonOperator":"LessThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"FreeStorageSpace","namespace":"AWS/ES","period":60,"statistic":"Minimum","threshold":20000}}}}},"IndexWritesBlockedTooHighAlarm":{"id":"IndexWritesBlockedTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/IndexWritesBlockedTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Your cluster is blocking write requests.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"ClusterIndexWritesBlocked","namespace":"AWS/ES","period":300,"statistic":"Maximum","threshold":1}}}}},"AutomatedSnapshotFailureTooHighAlarm":{"id":"AutomatedSnapshotFailureTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/AutomatedSnapshotFailureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"An automated snapshot failed. This failure is often the result of a red cluster health status.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"AutomatedSnapshotFailure","namespace":"AWS/ES","period":60,"statistic":"Maximum","threshold":1}}}}},"CPUUtilizationTooHighAlarm":{"id":"CPUUtilizationTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/CPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/CPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"100% CPU utilization is not uncommon, but sustained high usage is problematic. Consider using larger instance types or adding instances.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"CPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"JVMMemoryPressureTooHighAlarm":{"id":"JVMMemoryPressureTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/JVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"JVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":80}}}}},"MasterCPUUtilizationTooHighAlarm":{"id":"MasterCPUUtilizationTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/MasterCPUUtilizationTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average CPU utilization over last 45 minutes too high. Consider using larger instance types for your dedicated master nodes.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":3,"metricName":"MasterCPUUtilization","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}},"MasterJVMMemoryPressureTooHighAlarm":{"id":"MasterJVMMemoryPressureTooHighAlarm","path":"lamopn-vpc-props/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/test-lambda-opensearch/MasterJVMMemoryPressureTooHighAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Average JVM memory pressure over last 15 minutes too high. Consider scaling vertically.","comparisonOperator":"GreaterThanOrEqualToThreshold","evaluationPeriods":1,"metricName":"MasterJVMMemoryPressure","namespace":"AWS/ES","period":900,"statistic":"Average","threshold":50}}}}}}},"Vpc":{"id":"Vpc","path":"lamopn-vpc-props/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"ipAddresses":"*","enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamopn-vpc-props/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-vpc-props/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-vpc-props/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-vpc-props/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-vpc-props/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-vpc-props/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamopn-vpc-props/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamopn-vpc-props/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamopn-vpc-props/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamopn-vpc-props/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamopn-vpc-props/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamopn-vpc-props/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamopn-vpc-props/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamopn-vpc-props/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-vpc-props/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamopn-vpc-props/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamopn-vpc-props/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamopn-vpc-props/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamopn-vpc-props/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamopn-vpc-props/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamopn-vpc-props/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamopn-vpc-props/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamopn-vpc-props/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamopn-vpc-props/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamopn-vpc-props/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamopn-vpc-props/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamopn-vpc-props/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-vpc-props/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-vpc-props/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamopn-vpc-props/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamopn-vpc-props/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.adoc index 67bd6978d..1bbb0245e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToS3(this, 'LambdaToS3Pattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -89,7 +89,7 @@ import software.amazon.awsconstructs.services.lambdas3.*; new LambdaToS3(this, "LambdaToS3Pattern", new LambdaToS3Props.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -223,6 +223,10 @@ storage after 90 days image::aws-lambda-s3.png["Diagram showing the Lambda function, S3 bucket and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call S3, here are examples of many different S3 operations: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/s3/actions['examples']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/integ.json index 76b7889bd..7363212b5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lams3-customLoggingBucket/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lams3customLoggingBucketIntegDefaultTestDeployAssert3299F98C" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3-customLoggingBucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3-customLoggingBucket.assets.json index bf6c2619e..495631f7a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3-customLoggingBucket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3-customLoggingBucket.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { "displayName": "test-lambda-s3/LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region-86d36d19": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -29,16 +29,16 @@ } } }, - "e6bdb3eb2e0271f872d58e85ea59d275e3a99a11fc4ce3d1d00165726093fbb1": { + "8ca2a832b17a3db229023b8fd3be085c6386a99e81fb68287f603befc2b94681": { "displayName": "lams3-customLoggingBucket Template", "source": { "path": "lams3-customLoggingBucket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-68923720": { + "current_account-current_region-3dba136a": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "e6bdb3eb2e0271f872d58e85ea59d275e3a99a11fc4ce3d1d00165726093fbb1.json", + "objectKey": "8ca2a832b17a3db229023b8fd3be085c6386a99e81fb68287f603befc2b94681.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3-customLoggingBucket.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3-customLoggingBucket.template.json index 243a918b6..f28db6a03 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3-customLoggingBucket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3-customLoggingBucket.template.json @@ -122,7 +122,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -139,7 +139,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3customLoggingBucketIntegDefaultTestDeployAssert3299F98C.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3customLoggingBucketIntegDefaultTestDeployAssert3299F98C.assets.json index c04bb1c97..fcee0c2d4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3customLoggingBucketIntegDefaultTestDeployAssert3299F98C.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/lams3customLoggingBucketIntegDefaultTestDeployAssert3299F98C.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lams3customLoggingBucketIntegDefaultTestDeployAssert3299F98C Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/manifest.json index d17beb603..962dd7242 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e6bdb3eb2e0271f872d58e85ea59d275e3a99a11fc4ce3d1d00165726093fbb1.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8ca2a832b17a3db229023b8fd3be085c6386a99e81fb68287f603befc2b94681.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -425,57 +425,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -484,7 +475,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -561,7 +555,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -705,7 +699,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -734,7 +731,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -798,7 +798,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -832,7 +835,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -855,7 +861,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -885,6 +894,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/tree.json index 96cf8b570..44ab8b0b8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-customLoggingBucket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lams3-customLoggingBucket":{"id":"lams3-customLoggingBucket","path":"lams3-customLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"test-lambda-s3":{"id":"test-lambda-s3","path":"lams3-customLoggingBucket/test-lambda-s3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctionServiceRoleDefaultPolicyB6FC6493","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"testlambdas3S3Bucket179A52E6"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdas3LambdaFunctionServiceRole72E20379","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctioninlinePolicyAddedToExecutionRole0034561C2","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"lifecycleRules":[{"enabled":true,"transitions":"*"}]},{"addLifecycleRule":[{"enabled":true,"transitions":"*"},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"status":"Enabled","transitions":[{"storageClass":"GLACIER","transitionInDays":7}]}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lams3-customLoggingBucket/test-lambda-s3/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-customLoggingBucket/test-lambda-s3/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3Bucket179A52E6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lams3-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lams3-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lams3-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lams3-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"lams3-customLoggingBucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-customLoggingBucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-customLoggingBucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-customLoggingBucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-customLoggingBucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-customLoggingBucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-customLoggingBucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-customLoggingBucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lams3-customLoggingBucket":{"id":"lams3-customLoggingBucket","path":"lams3-customLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-s3":{"id":"test-lambda-s3","path":"lams3-customLoggingBucket/test-lambda-s3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctionServiceRoleDefaultPolicyB6FC6493","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"testlambdas3S3Bucket179A52E6"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdas3LambdaFunctionServiceRole72E20379","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctioninlinePolicyAddedToExecutionRole0034561C2","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"lifecycleRules":[{"enabled":true,"transitions":"*"}]},{"addLifecycleRule":[{"enabled":true,"transitions":"*"},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"status":"Enabled","transitions":[{"storageClass":"GLACIER","transitionInDays":7}]}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-customLoggingBucket/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lams3-customLoggingBucket/test-lambda-s3/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-customLoggingBucket/test-lambda-s3/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-customLoggingBucket/test-lambda-s3/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3Bucket179A52E6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lams3-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lams3-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lams3-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lams3-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lams3-customLoggingBucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-customLoggingBucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-customLoggingBucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-customLoggingBucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-customLoggingBucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-customLoggingBucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-customLoggingBucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-customLoggingBucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/integ.json index 1aad8b48f..5a43382ba 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lams3-deployFunction/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lams3deployFunctionIntegDefaultTestDeployAssert2C302ACE" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3-deployFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3-deployFunction.assets.json index ce59c6260..ddb9da7ae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3-deployFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3-deployFunction.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { "displayName": "test-lambda-s3/LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region-86d36d19": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -29,16 +29,16 @@ } } }, - "3129a12d277cb185bdd54ac4f5f26ee1da15f19e5b60fdd14c8872c510995c96": { + "7a5144783b71eb38fa8cf177e1395711d93b6aa54f919b52d68501f33bb53d55": { "displayName": "lams3-deployFunction Template", "source": { "path": "lams3-deployFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-f6b9e158": { + "current_account-current_region-3c9b5247": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3129a12d277cb185bdd54ac4f5f26ee1da15f19e5b60fdd14c8872c510995c96.json", + "objectKey": "7a5144783b71eb38fa8cf177e1395711d93b6aa54f919b52d68501f33bb53d55.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3-deployFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3-deployFunction.template.json index c36547824..0818c6f21 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3-deployFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3-deployFunction.template.json @@ -123,7 +123,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -140,7 +140,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3deployFunctionIntegDefaultTestDeployAssert2C302ACE.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3deployFunctionIntegDefaultTestDeployAssert2C302ACE.assets.json index 24ff5d56a..89924235e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3deployFunctionIntegDefaultTestDeployAssert2C302ACE.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/lams3deployFunctionIntegDefaultTestDeployAssert2C302ACE.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lams3deployFunctionIntegDefaultTestDeployAssert2C302ACE Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/manifest.json index 3ae1594f4..ece68d737 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3129a12d277cb185bdd54ac4f5f26ee1da15f19e5b60fdd14c8872c510995c96.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7a5144783b71eb38fa8cf177e1395711d93b6aa54f919b52d68501f33bb53d55.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -419,57 +419,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -478,7 +469,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -555,7 +549,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -699,7 +693,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -728,7 +725,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -792,7 +792,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -826,7 +829,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -849,7 +855,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -879,6 +888,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/tree.json index 076d3b830..0339953dc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lams3-deployFunction":{"id":"lams3-deployFunction","path":"lams3-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"test-lambda-s3":{"id":"test-lambda-s3","path":"lams3-deployFunction/test-lambda-s3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctionServiceRoleDefaultPolicyB6FC6493","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"testlambdas3S3Bucket179A52E6"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdas3LambdaFunctionServiceRole72E20379","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctioninlinePolicyAddedToExecutionRole0034561C2","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lams3-deployFunction/test-lambda-s3/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3Bucket179A52E6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lams3-deployFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lams3-deployFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lams3-deployFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lams3-deployFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"lams3-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lams3-deployFunction":{"id":"lams3-deployFunction","path":"lams3-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-s3":{"id":"test-lambda-s3","path":"lams3-deployFunction/test-lambda-s3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctionServiceRoleDefaultPolicyB6FC6493","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"testlambdas3S3Bucket179A52E6"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdas3LambdaFunctionServiceRole72E20379","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctioninlinePolicyAddedToExecutionRole0034561C2","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-deployFunction/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lams3-deployFunction/test-lambda-s3/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3Bucket179A52E6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-deployFunction/test-lambda-s3/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lams3-deployFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lams3-deployFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lams3-deployFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lams3-deployFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lams3-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/lams3-deployFunctionWithVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/lams3-deployFunctionWithVpc.assets.json index cd7543312..3b8f7f880 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/lams3-deployFunctionWithVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/lams3-deployFunctionWithVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "11f666494d8522c0ae6505ce53bc0d6ac2606c04f31575d06bb3e81df4a604fa": { + "85412c450a65b4f0346bfee1837df8bea8bdd1332e6f76221926df4a255d1250": { "displayName": "lams3-deployFunctionWithVpc Template", "source": { "path": "lams3-deployFunctionWithVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-78fba19b": { + "current_account-current_region-840c96cf": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "11f666494d8522c0ae6505ce53bc0d6ac2606c04f31575d06bb3e81df4a604fa.json", + "objectKey": "85412c450a65b4f0346bfee1837df8bea8bdd1332e6f76221926df4a255d1250.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/lams3-deployFunctionWithVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/lams3-deployFunctionWithVpc.template.json index 1e5c629c1..57d171873 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/lams3-deployFunctionWithVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/lams3-deployFunctionWithVpc.template.json @@ -191,7 +191,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/manifest.json index 48dd847fb..d8e5fed70 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/11f666494d8522c0ae6505ce53bc0d6ac2606c04f31575d06bb3e81df4a604fa.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/85412c450a65b4f0346bfee1837df8bea8bdd1332e6f76221926df4a255d1250.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/tree.json index 5deee1dcd..69e3891bc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-deployFunctionWithVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lams3-deployFunctionWithVpc":{"id":"lams3-deployFunctionWithVpc","path":"lams3-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-s3":{"id":"test-lambda-s3","path":"lams3-deployFunctionWithVpc/test-lambda-s3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctionServiceRoleDefaultPolicyB6FC6493","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lams3-deployFunctionWithVpc/test-lambda-s3/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lams3-deployFunctionWithVpc/test-lambda-s3/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"testlambdas3S3Bucket179A52E6"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdas3LambdaFunctionServiceRole72E20379","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdas3ReplaceDefaultSecurityGroupsecuritygroupA1E3F673","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctioninlinePolicyAddedToExecutionRole0034561C2","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lams3-deployFunctionWithVpc/test-lambda-s3/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}]},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-deployFunctionWithVpc/test-lambda-s3/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3Bucket179A52E6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"Vpc":{"id":"Vpc","path":"lams3-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lams3-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"S3":{"id":"S3","path":"lams3-deployFunctionWithVpc/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc"}],"routeTableIds":[{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},{"Ref":"VpcisolatedSubnet2RouteTable334F9764"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lams3-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lams3-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lams3-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lams3-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lams3-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lams3-deployFunctionWithVpc":{"id":"lams3-deployFunctionWithVpc","path":"lams3-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-s3":{"id":"test-lambda-s3","path":"lams3-deployFunctionWithVpc/test-lambda-s3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctionServiceRoleDefaultPolicyB6FC6493","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lams3-deployFunctionWithVpc/test-lambda-s3/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lams3-deployFunctionWithVpc/test-lambda-s3/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"testlambdas3S3Bucket179A52E6"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdas3LambdaFunctionServiceRole72E20379","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdas3ReplaceDefaultSecurityGroupsecuritygroupA1E3F673","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdas3LambdaFunctioninlinePolicyAddedToExecutionRole0034561C2","roles":[{"Ref":"testlambdas3LambdaFunctionServiceRole72E20379"}]}}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lams3-deployFunctionWithVpc/test-lambda-s3/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}]},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-deployFunctionWithVpc/test-lambda-s3/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/test-lambda-s3/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3Bucket179A52E6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"Vpc":{"id":"Vpc","path":"lams3-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lams3-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lams3-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lams3-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"S3":{"id":"S3","path":"lams3-deployFunctionWithVpc/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lams3-deployFunctionWithVpc/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lams3-deployFunctionWithVpc/Vpc"}],"routeTableIds":[{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},{"Ref":"VpcisolatedSubnet2RouteTable334F9764"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lams3-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lams3-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lams3-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lams3-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lams3-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/integ.json index 24cc1edd9..13802425a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lams3-existingFunction/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lams3existingFunctionIntegDefaultTestDeployAssertFA6B4A52" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3-existingFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3-existingFunction.assets.json index 44dae6c10..1f8be61ea 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3-existingFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3-existingFunction.assets.json @@ -1,16 +1,16 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { "displayName": "LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region-86d36d19": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -29,16 +29,16 @@ } } }, - "13fd8121d6f882aa3423156f15c451713cb8278d79ebdfb5ae9d5ee05932c4ab": { + "c2ff1eb63da330a76b960f654d14d6578bbe0ceac676b280eaacb7b7a9ebcaa4": { "displayName": "lams3-existingFunction Template", "source": { "path": "lams3-existingFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-8c95035f": { + "current_account-current_region-558795cd": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "13fd8121d6f882aa3423156f15c451713cb8278d79ebdfb5ae9d5ee05932c4ab.json", + "objectKey": "c2ff1eb63da330a76b960f654d14d6578bbe0ceac676b280eaacb7b7a9ebcaa4.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3-existingFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3-existingFunction.template.json index 36e753dd2..47d27691e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3-existingFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3-existingFunction.template.json @@ -123,7 +123,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -140,7 +140,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3existingFunctionIntegDefaultTestDeployAssertFA6B4A52.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3existingFunctionIntegDefaultTestDeployAssertFA6B4A52.assets.json index cf661ee39..72c540b67 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3existingFunctionIntegDefaultTestDeployAssertFA6B4A52.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/lams3existingFunctionIntegDefaultTestDeployAssertFA6B4A52.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lams3existingFunctionIntegDefaultTestDeployAssertFA6B4A52 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/manifest.json index 4a46a001c..7d4e393fc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/13fd8121d6f882aa3423156f15c451713cb8278d79ebdfb5ae9d5ee05932c4ab.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c2ff1eb63da330a76b960f654d14d6578bbe0ceac676b280eaacb7b7a9ebcaa4.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -419,57 +419,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -478,7 +469,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -555,7 +549,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -699,7 +693,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -728,7 +725,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -792,7 +792,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -826,7 +829,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -849,7 +855,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -879,6 +888,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/tree.json index 2782624ba..c1297d49d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-existingFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lams3-existingFunction":{"id":"lams3-existingFunction","path":"lams3-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lams3-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"testlambdas3S3Bucket179A52E6"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-s3":{"id":"test-lambda-s3","path":"lams3-existingFunction/test-lambda-s3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.86.0"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lams3-existingFunction/test-lambda-s3/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3Bucket179A52E6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lams3-existingFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lams3-existingFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lams3-existingFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lams3-existingFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"lams3-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lams3-existingFunction":{"id":"lams3-existingFunction","path":"lams3-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lams3-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"testlambdas3S3Bucket179A52E6"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-s3":{"id":"test-lambda-s3","path":"lams3-existingFunction/test-lambda-s3","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.95.1"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3LoggingBucketD42FC73D","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-existingFunction/test-lambda-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"lams3-existingFunction/test-lambda-s3/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdas3S3LoggingBucketD42FC73D"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdas3S3Bucket179A52E6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdas3S3Bucket179A52E6","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-existingFunction/test-lambda-s3/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lams3-existingFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lams3-existingFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lams3-existingFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lams3-existingFunction/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lams3-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js new file mode 100644 index 000000000..2f92d06c1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js @@ -0,0 +1 @@ +"use strict";var f=Object.create,i=Object.defineProperty,I=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,A=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of C(e))!P.call(t,s)&&s!==o&&i(t,s,{get:()=>e[s],enumerable:!(r=I(e,s))||r.enumerable});return t},l=(t,e,o)=>(o=t!=null?f(w(t)):{},d(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>d(i({},"__esModule",{value:!0}),t),q={};A(q,{autoDeleteHandler:()=>S,handler:()=>H}),module.exports=B(q);var h=require("@aws-sdk/client-s3"),y=l(require("https")),m=l(require("url")),a={sendHttpRequest:D,log:T,includeStackTraces:!0,userHandlerIndex:"./index"},p="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",L="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";function R(t){return async(e,o)=>{let r={...e,ResponseURL:"..."};if(a.log(JSON.stringify(r,void 0,2)),e.RequestType==="Delete"&&e.PhysicalResourceId===p){a.log("ignoring DELETE event caused by a failed CREATE event"),await u("SUCCESS",e);return}try{let s=await t(r,o),n=k(e,s);await u("SUCCESS",n)}catch(s){let n={...e,Reason:a.includeStackTraces?s.stack:s.message};n.PhysicalResourceId||(e.RequestType==="Create"?(a.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),n.PhysicalResourceId=p):a.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(e)}`)),await u("FAILED",n)}}}function k(t,e={}){let o=e.PhysicalResourceId??t.PhysicalResourceId??t.RequestId;if(t.RequestType==="Delete"&&o!==t.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${t.PhysicalResourceId}" to "${e.PhysicalResourceId}" during deletion`);return{...t,...e,PhysicalResourceId:o}}async function u(t,e){let o={Status:t,Reason:e.Reason??t,StackId:e.StackId,RequestId:e.RequestId,PhysicalResourceId:e.PhysicalResourceId||L,LogicalResourceId:e.LogicalResourceId,NoEcho:e.NoEcho,Data:e.Data},r=m.parse(e.ResponseURL),s=`${r.protocol}//${r.hostname}/${r.pathname}?***`;a.log("submit response to cloudformation",s,o);let n=JSON.stringify(o),E={hostname:r.hostname,path:r.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(n,"utf8")}};await O({attempts:5,sleep:1e3},a.sendHttpRequest)(E,n)}async function D(t,e){return new Promise((o,r)=>{try{let s=y.request(t,n=>{n.resume(),!n.statusCode||n.statusCode>=400?r(new Error(`Unsuccessful HTTP response: ${n.statusCode}`)):o()});s.on("error",r),s.write(e),s.end()}catch(s){r(s)}})}function T(t,...e){console.log(t,...e)}function O(t,e){return async(...o)=>{let r=t.attempts,s=t.sleep;for(;;)try{return await e(...o)}catch(n){if(r--<=0)throw n;await b(Math.floor(Math.random()*s)),s*=2}}}async function b(t){return new Promise(e=>setTimeout(e,t))}var g="aws-cdk:auto-delete-objects",x=JSON.stringify({Version:"2012-10-17",Statement:[]}),c=new h.S3({}),H=R(S);async function S(t){switch(t.RequestType){case"Create":return;case"Update":return{PhysicalResourceId:(await F(t)).PhysicalResourceId};case"Delete":return N(t.ResourceProperties?.BucketName)}}async function F(t){let e=t,o=e.OldResourceProperties?.BucketName;return{PhysicalResourceId:e.ResourceProperties?.BucketName??o}}async function _(t){try{let e=(await c.getBucketPolicy({Bucket:t}))?.Policy??x,o=JSON.parse(e);o.Statement.push({Principal:"*",Effect:"Deny",Action:["s3:PutObject"],Resource:[`arn:aws:s3:::${t}/*`]}),await c.putBucketPolicy({Bucket:t,Policy:JSON.stringify(o)})}catch(e){if(e.name==="NoSuchBucket")throw e;console.log(`Could not set new object deny policy on bucket '${t}' prior to deletion.`)}}async function U(t){let e;do{e=await c.listObjectVersions({Bucket:t});let o=[...e.Versions??[],...e.DeleteMarkers??[]];if(o.length===0)return;let r=o.map(s=>({Key:s.Key,VersionId:s.VersionId}));await c.deleteObjects({Bucket:t,Delete:{Objects:r}})}while(e?.IsTruncated)}async function N(t){if(!t)throw new Error("No BucketName was provided.");try{if(!await W(t)){console.log(`Bucket does not have '${g}' tag, skipping cleaning.`);return}await _(t),await U(t)}catch(e){if(e.name==="NoSuchBucket"){console.log(`Bucket '${t}' does not exist.`);return}throw e}}async function W(t){return(await c.getBucketTagging({Bucket:t})).TagSet?.some(o=>o.Key===g&&o.Value==="true")} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/integ.json index c8b7ab6f3..c3da74a84 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lams3-pre-existing-bucket/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lams3preexistingbucketIntegDefaultTestDeployAssert46B8061C" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3-pre-existing-bucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3-pre-existing-bucket.assets.json index b1a97fbaa..59b38ce3c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3-pre-existing-bucket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3-pre-existing-bucket.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "displayName": "lams3-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", @@ -15,30 +15,30 @@ } } }, - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { "displayName": "test-lambda-s3-pre-existing-bucket/LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region-86d36d19": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "4e5dad1e5bb393ddf790f2fceb351fb1010cd547363db1c67c452c859e211a2a": { + "6bbd4a0975136acfc0d3f57e1c1078fcdf18a61213663658f1f25b62de618374": { "displayName": "lams3-pre-existing-bucket Template", "source": { "path": "lams3-pre-existing-bucket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-3c97dfad": { + "current_account-current_region-e3745a4f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4e5dad1e5bb393ddf790f2fceb351fb1010cd547363db1c67c452c859e211a2a.json", + "objectKey": "6bbd4a0975136acfc0d3f57e1c1078fcdf18a61213663658f1f25b62de618374.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3-pre-existing-bucket.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3-pre-existing-bucket.template.json index c96339a21..3bc6997a3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3-pre-existing-bucket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3-pre-existing-bucket.template.json @@ -521,7 +521,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -538,7 +538,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3preexistingbucketIntegDefaultTestDeployAssert46B8061C.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3preexistingbucketIntegDefaultTestDeployAssert46B8061C.assets.json index f3c226684..1a994f99c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3preexistingbucketIntegDefaultTestDeployAssert46B8061C.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/lams3preexistingbucketIntegDefaultTestDeployAssert46B8061C.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lams3preexistingbucketIntegDefaultTestDeployAssert46B8061C Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/manifest.json index 8097e1b65..2bcdd1507 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4e5dad1e5bb393ddf790f2fceb351fb1010cd547363db1c67c452c859e211a2a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6bbd4a0975136acfc0d3f57e1c1078fcdf18a61213663658f1f25b62de618374.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -392,57 +392,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -451,7 +442,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -528,7 +522,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -672,7 +666,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -701,7 +698,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -765,7 +765,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -799,7 +802,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -822,7 +828,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -852,6 +861,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/tree.json index f9c90e38e..11a180a8f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.lams3-pre-existing-bucket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lams3-pre-existing-bucket":{"id":"lams3-pre-existing-bucket","path":"lams3-pre-existing-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"lams3-pre-existing-bucket/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-pre-existing-bucket/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-pre-existing-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-pre-existing-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lams3-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lams3-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lams3-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lams3-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"lams3-pre-existing-bucket/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-pre-existing-bucket/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-pre-existing-bucket/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-pre-existing-bucket/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}}}},"mybucket":{"id":"mybucket","path":"lams3-pre-existing-bucket/mybucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}},"test-lambda-s3-pre-existing-bucket":{"id":"test-lambda-s3-pre-existing-bucket","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Ref":"scrapBucketB11863B7"},"/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Ref":"scrapBucketB11863B7"}]]}]}],"Version":"2012-10-17"},"policyName":"testlambdas3preexistingbucketLambdaFunctionServiceRoleDefaultPolicy1B2212F1","roles":[{"Ref":"testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"scrapBucketB11863B7"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdas3preexistingbucketLambdaFunctioninlinePolicyAddedToExecutionRole0B9BFC008","roles":[{"Ref":"testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lams3-pre-existing-bucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-pre-existing-bucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-pre-existing-bucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-pre-existing-bucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-pre-existing-bucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-pre-existing-bucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-pre-existing-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-pre-existing-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lams3-pre-existing-bucket":{"id":"lams3-pre-existing-bucket","path":"lams3-pre-existing-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"lams3-pre-existing-bucket/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-pre-existing-bucket/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-pre-existing-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-pre-existing-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lams3-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lams3-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lams3-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lams3-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"lams3-pre-existing-bucket/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lams3-pre-existing-bucket/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lams3-pre-existing-bucket/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lams3-pre-existing-bucket/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"mybucket":{"id":"mybucket","path":"lams3-pre-existing-bucket/mybucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}},"test-lambda-s3-pre-existing-bucket":{"id":"test-lambda-s3-pre-existing-bucket","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-s3.LambdaToS3","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Ref":"scrapBucketB11863B7"},"/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Ref":"scrapBucketB11863B7"}]]}]}],"Version":"2012-10-17"},"policyName":"testlambdas3preexistingbucketLambdaFunctionServiceRoleDefaultPolicy1B2212F1","roles":[{"Ref":"testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","S3_BUCKET_NAME":{"Ref":"scrapBucketB11863B7"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lams3-pre-existing-bucket/test-lambda-s3-pre-existing-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdas3preexistingbucketLambdaFunctioninlinePolicyAddedToExecutionRole0B9BFC008","roles":[{"Ref":"testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lams3-pre-existing-bucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lams3-pre-existing-bucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lams3-pre-existing-bucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lams3-pre-existing-bucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-pre-existing-bucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-pre-existing-bucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lams3-pre-existing-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lams3-pre-existing-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/README.adoc index 2b57ebd67..42d52516b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/README.adoc @@ -134,7 +134,7 @@ new LambdaToSagemakerEndpoint(this, "LambdaToSagemakerEndpointPattern", .executionRoleArn("executionRoleArn") .build()) .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .timeout(Duration.minutes(5)) @@ -266,6 +266,10 @@ and higher functions). image::aws-lambda-sagemakerendpoint.png["Diagram showing the Lambda function, SageMaker endpoint, CloudWatch log group and IAM roles created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to interact with SageMaker, this repo has several SageMaker examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sagemaker['examples']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/README.adoc index c15f809dd..14cc31a1f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/README.adoc @@ -50,7 +50,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: LambdaToSecretsmanagerProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, code: lambda.Code.fromAsset(`lambda`), handler: 'index.handler' }, @@ -95,7 +95,7 @@ import software.amazon.awsconstructs.services.lambdasecretsmanager.*; new LambdaToSecretsmanager(this, "test-lambda-secretsmanager-stack", new LambdaToSecretsmanagerProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -210,6 +210,10 @@ and higher functions) image::aws-lambda-secretsmanager.png["Diagram showing the Lambda function, Secrets Manager secret, CloudWatch log group and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to get a Secret from Secrets Manager, there is example code available here: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/secrets-manager/actions/get-secret-value.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/integ.json index eda0834c7..3d60d2385 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamsec-deployFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamsec-deployFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamsecdeployFunctionIntegDefaultTestDeployAssert7322BEEA" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsec-deployFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsec-deployFunction.assets.json index 5f10be834..a8741f67e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsec-deployFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsec-deployFunction.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "test-lambda-secretsmanager/LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "36207811f4486da8c2fe4cde8106c4455200827b33057a10e329e26cd2a2b1a9": { + "137d115a6d6797063693651083d23d0f89e72aafc2b7ea58e84c8d7a8055e6eb": { + "displayName": "lamsec-deployFunction Template", "source": { "path": "lamsec-deployFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-32d863b5": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "36207811f4486da8c2fe4cde8106c4455200827b33057a10e329e26cd2a2b1a9.json", + "objectKey": "137d115a6d6797063693651083d23d0f89e72aafc2b7ea58e84c8d7a8055e6eb.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsec-deployFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsec-deployFunction.template.json index bb951e506..d7cff20cf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsec-deployFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsec-deployFunction.template.json @@ -113,7 +113,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsecdeployFunctionIntegDefaultTestDeployAssert7322BEEA.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsecdeployFunctionIntegDefaultTestDeployAssert7322BEEA.assets.json index f04af47dc..c3993480a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsecdeployFunctionIntegDefaultTestDeployAssert7322BEEA.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/lamsecdeployFunctionIntegDefaultTestDeployAssert7322BEEA.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamsecdeployFunctionIntegDefaultTestDeployAssert7322BEEA Template", "source": { "path": "lamsecdeployFunctionIntegDefaultTestDeployAssert7322BEEA.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/manifest.json index 2af61eefb..36b113e05 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamsecdeployFunctionIntegDefaultTestDeployAssert7322BEEA.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/36207811f4486da8c2fe4cde8106c4455200827b33057a10e329e26cd2a2b1a9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/137d115a6d6797063693651083d23d0f89e72aafc2b7ea58e84c8d7a8055e6eb.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -293,7 +293,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/tree.json index b3fde618d..a38fa7643 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamsec-deployFunction":{"id":"lamsec-deployFunction","path":"lamsec-deployFunction","children":{"test-lambda-secretsmanager":{"id":"test-lambda-secretsmanager","path":"lamsec-deployFunction/test-lambda-secretsmanager","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["secretsmanager:DescribeSecret","secretsmanager:GetSecretValue"],"Effect":"Allow","Resource":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerLambdaFunctionServiceRoleDefaultPolicyF24BF460","roles":[{"Ref":"testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SECRET_ARN":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerLambdaFunctioninlinePolicyAddedToExecutionRole0A805C55F","roles":[{"Ref":"testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"secret":{"id":"secret","path":"lamsec-deployFunction/test-lambda-secretsmanager/secret","children":{"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/secret/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SecretsManager::Secret","aws:cdk:cloudformation:props":{"generateSecretString":{}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.CfnSecret","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.Secret","version":"2.186.0","metadata":[{"removalPolicy":"destroy"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-secretsmanager.LambdaToSecretsmanager","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamsec-deployFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamsec-deployFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamsec-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsec-deployFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsec-deployFunction":{"id":"lamsec-deployFunction","path":"lamsec-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-secretsmanager":{"id":"test-lambda-secretsmanager","path":"lamsec-deployFunction/test-lambda-secretsmanager","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-secretsmanager.LambdaToSecretsmanager","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["secretsmanager:DescribeSecret","secretsmanager:GetSecretValue"],"Effect":"Allow","Resource":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerLambdaFunctionServiceRoleDefaultPolicyF24BF460","roles":[{"Ref":"testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SECRET_ARN":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerLambdaFunctioninlinePolicyAddedToExecutionRole0A805C55F","roles":[{"Ref":"testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F"}]}}}}}}},"secret":{"id":"secret","path":"lamsec-deployFunction/test-lambda-secretsmanager/secret","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.Secret","version":"2.223.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunction/test-lambda-secretsmanager/secret/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.CfnSecret","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SecretsManager::Secret","aws:cdk:cloudformation:props":{"generateSecretString":{}}}}}}}},"Integ":{"id":"Integ","path":"lamsec-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsec-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsec-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsec-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/lamsec-deployFunctionWithExistingVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/lamsec-deployFunctionWithExistingVpc.assets.json index 7c0d0e29e..6335a3dca 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/lamsec-deployFunctionWithExistingVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/lamsec-deployFunctionWithExistingVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "a7148c54da01eab17a4e5cd842baf323248cc7f6fb80f967504ca26580d03b58": { + "66b2b238681362c16bfb788c6d5e1ea266ca5efedeadf33e60e9ba58a6048332": { "displayName": "lamsec-deployFunctionWithExistingVpc Template", "source": { "path": "lamsec-deployFunctionWithExistingVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-a3b3be65": { + "current_account-current_region-208309b7": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a7148c54da01eab17a4e5cd842baf323248cc7f6fb80f967504ca26580d03b58.json", + "objectKey": "66b2b238681362c16bfb788c6d5e1ea266ca5efedeadf33e60e9ba58a6048332.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/lamsec-deployFunctionWithExistingVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/lamsec-deployFunctionWithExistingVpc.template.json index aea35735e..b2a604577 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/lamsec-deployFunctionWithExistingVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/lamsec-deployFunctionWithExistingVpc.template.json @@ -861,7 +861,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/manifest.json index 648c9916c..8a318e054 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a7148c54da01eab17a4e5cd842baf323248cc7f6fb80f967504ca26580d03b58.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/66b2b238681362c16bfb788c6d5e1ea266ca5efedeadf33e60e9ba58a6048332.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/tree.json index 2c5db3612..f06f73277 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithExistingVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsec-deployFunctionWithExistingVpc":{"id":"lamsec-deployFunctionWithExistingVpc","path":"lamsec-deployFunctionWithExistingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamsec-deployFunctionWithExistingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamsec-deployFunctionWithExistingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamsec-deployFunctionWithExistingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsec-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SECRETS_MANAGER":{"id":"SECRETS_MANAGER","path":"lamsec-deployFunctionWithExistingVpc/Vpc/SECRETS_MANAGER","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/SECRETS_MANAGER/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamsecdeployFunctionWithExistingVpcSECRETSMANAGERsecuritygroup30E54F0F","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".secretsmanager"]]},"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsec-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsec-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsec-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsec-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-secretsmanager-stack":{"id":"test-lambda-secretsmanager-stack","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-secretsmanager.LambdaToSecretsmanager","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["secretsmanager:DescribeSecret","secretsmanager:GetSecretValue"],"Effect":"Allow","Resource":{"Ref":"testlambdasecretsmanagerstacksecretC2FCB96E"}}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerstackLambdaFunctionServiceRoleDefaultPolicy2F46FC5F","roles":[{"Ref":"testlambdasecretsmanagerstackLambdaFunctionServiceRole4FE7A9C6"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SECRET_ARN":{"Ref":"testlambdasecretsmanagerstacksecretC2FCB96E"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasecretsmanagerstackLambdaFunctionServiceRole4FE7A9C6","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasecretsmanagerstackReplaceDefaultSecurityGroupsecuritygroupBBE9275E","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerstackLambdaFunctioninlinePolicyAddedToExecutionRole0EBC40474","roles":[{"Ref":"testlambdasecretsmanagerstackLambdaFunctionServiceRole4FE7A9C6"}]}}}}}}},"secret":{"id":"secret","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/secret","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.Secret","version":"2.223.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/secret/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.CfnSecret","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SecretsManager::Secret","aws:cdk:cloudformation:props":{"generateSecretString":{}}}}}}}},"lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group":{"id":"lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group","path":"lamsec-deployFunctionWithExistingVpc/lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsec-deployFunctionWithExistingVpc/lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamsec-deployFunctionWithExistingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunctionWithExistingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunctionWithExistingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsec-deployFunctionWithExistingVpc":{"id":"lamsec-deployFunctionWithExistingVpc","path":"lamsec-deployFunctionWithExistingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamsec-deployFunctionWithExistingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamsec-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamsec-deployFunctionWithExistingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamsec-deployFunctionWithExistingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsec-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SECRETS_MANAGER":{"id":"SECRETS_MANAGER","path":"lamsec-deployFunctionWithExistingVpc/Vpc/SECRETS_MANAGER","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/Vpc/SECRETS_MANAGER/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithExistingVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamsecdeployFunctionWithExistingVpcSECRETSMANAGERsecuritygroup30E54F0F","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".secretsmanager"]]},"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsec-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsec-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsec-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsec-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-secretsmanager-stack":{"id":"test-lambda-secretsmanager-stack","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-secretsmanager.LambdaToSecretsmanager","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["secretsmanager:DescribeSecret","secretsmanager:GetSecretValue"],"Effect":"Allow","Resource":{"Ref":"testlambdasecretsmanagerstacksecretC2FCB96E"}}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerstackLambdaFunctionServiceRoleDefaultPolicy2F46FC5F","roles":[{"Ref":"testlambdasecretsmanagerstackLambdaFunctionServiceRole4FE7A9C6"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SECRET_ARN":{"Ref":"testlambdasecretsmanagerstacksecretC2FCB96E"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasecretsmanagerstackLambdaFunctionServiceRole4FE7A9C6","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasecretsmanagerstackReplaceDefaultSecurityGroupsecuritygroupBBE9275E","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerstackLambdaFunctioninlinePolicyAddedToExecutionRole0EBC40474","roles":[{"Ref":"testlambdasecretsmanagerstackLambdaFunctionServiceRole4FE7A9C6"}]}}}}}}},"secret":{"id":"secret","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/secret","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.Secret","version":"2.223.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/test-lambda-secretsmanager-stack/secret/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.CfnSecret","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SecretsManager::Secret","aws:cdk:cloudformation:props":{"generateSecretString":{}}}}}}}},"lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group":{"id":"lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group","path":"lamsec-deployFunctionWithExistingVpc/lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithExistingVpc/lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsec-deployFunctionWithExistingVpc/lamsec-deployFunctionWithExistingVpc-SECRETS_MANAGER-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamsec-deployFunctionWithExistingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunctionWithExistingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunctionWithExistingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/lamsec-deployFunctionWithVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/lamsec-deployFunctionWithVpc.assets.json index 663b1bb17..8c1786de0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/lamsec-deployFunctionWithVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/lamsec-deployFunctionWithVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "9cd2e890548f151f52ccdd1ebf4d41870285ffad689ca9da1667af45179a3ba4": { + "720d1f3e6b0cf12672ab2f1bc0f3ff747a1f974a1d525436f9de4848e2e111dd": { "displayName": "lamsec-deployFunctionWithVpc Template", "source": { "path": "lamsec-deployFunctionWithVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-4200cbe1": { + "current_account-current_region-4c713e4f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "9cd2e890548f151f52ccdd1ebf4d41870285ffad689ca9da1667af45179a3ba4.json", + "objectKey": "720d1f3e6b0cf12672ab2f1bc0f3ff747a1f974a1d525436f9de4848e2e111dd.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/lamsec-deployFunctionWithVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/lamsec-deployFunctionWithVpc.template.json index e8f8b5f06..a636857e0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/lamsec-deployFunctionWithVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/lamsec-deployFunctionWithVpc.template.json @@ -164,7 +164,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/manifest.json index f0288b508..cbdea937e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9cd2e890548f151f52ccdd1ebf4d41870285ffad689ca9da1667af45179a3ba4.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/720d1f3e6b0cf12672ab2f1bc0f3ff747a1f974a1d525436f9de4848e2e111dd.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/tree.json index d4067ca04..07763b871 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-deployFunctionWithVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsec-deployFunctionWithVpc":{"id":"lamsec-deployFunctionWithVpc","path":"lamsec-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-secretsmanager":{"id":"test-lambda-secretsmanager","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-secretsmanager.LambdaToSecretsmanager","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["secretsmanager:DescribeSecret","secretsmanager:GetSecretValue"],"Effect":"Allow","Resource":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerLambdaFunctionServiceRoleDefaultPolicyF24BF460","roles":[{"Ref":"testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SECRET_ARN":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasecretsmanagerReplaceDefaultSecurityGroupsecuritygroupF837FD37","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerLambdaFunctioninlinePolicyAddedToExecutionRole0A805C55F","roles":[{"Ref":"testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F"}]}}}}}}},"secret":{"id":"secret","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/secret","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.Secret","version":"2.223.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/secret/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.CfnSecret","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SecretsManager::Secret","aws:cdk:cloudformation:props":{"generateSecretString":{}}}}}}}},"Vpc":{"id":"Vpc","path":"lamsec-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsec-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsec-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SECRETS_MANAGER":{"id":"SECRETS_MANAGER","path":"lamsec-deployFunctionWithVpc/Vpc/SECRETS_MANAGER","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/SECRETS_MANAGER/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamsecdeployFunctionWithVpcSECRETSMANAGERsecuritygroup98862008","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".secretsmanager"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsec-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsec-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsec-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsec-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group":{"id":"lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group","path":"lamsec-deployFunctionWithVpc/lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsec-deployFunctionWithVpc/lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamsec-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsec-deployFunctionWithVpc":{"id":"lamsec-deployFunctionWithVpc","path":"lamsec-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-secretsmanager":{"id":"test-lambda-secretsmanager","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-secretsmanager.LambdaToSecretsmanager","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["secretsmanager:DescribeSecret","secretsmanager:GetSecretValue"],"Effect":"Allow","Resource":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerLambdaFunctionServiceRoleDefaultPolicyF24BF460","roles":[{"Ref":"testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SECRET_ARN":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasecretsmanagerReplaceDefaultSecurityGroupsecuritygroupF837FD37","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasecretsmanagerLambdaFunctioninlinePolicyAddedToExecutionRole0A805C55F","roles":[{"Ref":"testlambdasecretsmanagerLambdaFunctionServiceRole92CE007F"}]}}}}}}},"secret":{"id":"secret","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/secret","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.Secret","version":"2.223.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/test-lambda-secretsmanager/secret/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.CfnSecret","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SecretsManager::Secret","aws:cdk:cloudformation:props":{"generateSecretString":{}}}}}}}},"Vpc":{"id":"Vpc","path":"lamsec-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsec-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsec-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsec-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsec-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SECRETS_MANAGER":{"id":"SECRETS_MANAGER","path":"lamsec-deployFunctionWithVpc/Vpc/SECRETS_MANAGER","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/Vpc/SECRETS_MANAGER/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsec-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamsecdeployFunctionWithVpcSECRETSMANAGERsecuritygroup98862008","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".secretsmanager"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsec-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsec-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsec-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsec-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group":{"id":"lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group","path":"lamsec-deployFunctionWithVpc/lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-deployFunctionWithVpc/lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsec-deployFunctionWithVpc/lamsec-deployFunctionWithVpc-SECRETS_MANAGER-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamsec-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/integ.json index ed105e37f..8ef25bd1e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamsec-existingFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamsec-existingFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamsecexistingFunctionIntegDefaultTestDeployAssert295B352B" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsec-existingFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsec-existingFunction.assets.json index 5da13616d..108ec9a62 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsec-existingFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsec-existingFunction.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "13696467e3f33b66f4004b57ee05ec5fd2f9dabb7e4f2227f45773099e9f05b9": { + "9f9b6012f5b886fcf1fb0397e795149d978da591d702bb958affbd1692bfc982": { + "displayName": "lamsec-existingFunction Template", "source": { "path": "lamsec-existingFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-642dfad0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "13696467e3f33b66f4004b57ee05ec5fd2f9dabb7e4f2227f45773099e9f05b9.json", + "objectKey": "9f9b6012f5b886fcf1fb0397e795149d978da591d702bb958affbd1692bfc982.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsec-existingFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsec-existingFunction.template.json index 6ba9b78c4..ce1f861be 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsec-existingFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsec-existingFunction.template.json @@ -113,7 +113,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsecexistingFunctionIntegDefaultTestDeployAssert295B352B.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsecexistingFunctionIntegDefaultTestDeployAssert295B352B.assets.json index b001bde11..d90432eea 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsecexistingFunctionIntegDefaultTestDeployAssert295B352B.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/lamsecexistingFunctionIntegDefaultTestDeployAssert295B352B.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamsecexistingFunctionIntegDefaultTestDeployAssert295B352B Template", "source": { "path": "lamsecexistingFunctionIntegDefaultTestDeployAssert295B352B.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/manifest.json index 6752c530b..ab0104bd2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamsecexistingFunctionIntegDefaultTestDeployAssert295B352B.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/13696467e3f33b66f4004b57ee05ec5fd2f9dabb7e4f2227f45773099e9f05b9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9f9b6012f5b886fcf1fb0397e795149d978da591d702bb958affbd1692bfc982.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -293,7 +293,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/tree.json index 685418bb7..9e3a63491 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.lamsec-existingFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamsec-existingFunction":{"id":"lamsec-existingFunction","path":"lamsec-existingFunction","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsec-existingFunction/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsec-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-existingFunction/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsec-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["secretsmanager:DescribeSecret","secretsmanager:GetSecretValue"],"Effect":"Allow","Resource":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsec-existingFunction/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsec-existingFunction/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsec-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsec-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsec-existingFunction/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SECRET_ARN":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsec-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsec-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"test-lambda-secretsmanager":{"id":"test-lambda-secretsmanager","path":"lamsec-existingFunction/test-lambda-secretsmanager","children":{"secret":{"id":"secret","path":"lamsec-existingFunction/test-lambda-secretsmanager/secret","children":{"Resource":{"id":"Resource","path":"lamsec-existingFunction/test-lambda-secretsmanager/secret/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SecretsManager::Secret","aws:cdk:cloudformation:props":{"generateSecretString":{}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.CfnSecret","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.Secret","version":"2.186.0","metadata":[{"removalPolicy":"destroy"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-secretsmanager.LambdaToSecretsmanager","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamsec-existingFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamsec-existingFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamsec-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsec-existingFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsec-existingFunction":{"id":"lamsec-existingFunction","path":"lamsec-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsec-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsec-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsec-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsec-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["secretsmanager:DescribeSecret","secretsmanager:GetSecretValue"],"Effect":"Allow","Resource":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsec-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsec-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsec-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsec-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsec-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SECRET_ARN":{"Ref":"testlambdasecretsmanagersecret4C99E6BF"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsec-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsec-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-secretsmanager":{"id":"test-lambda-secretsmanager","path":"lamsec-existingFunction/test-lambda-secretsmanager","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-secretsmanager.LambdaToSecretsmanager","version":"2.95.1"},"children":{"secret":{"id":"secret","path":"lamsec-existingFunction/test-lambda-secretsmanager/secret","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.Secret","version":"2.223.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"lamsec-existingFunction/test-lambda-secretsmanager/secret/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.CfnSecret","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SecretsManager::Secret","aws:cdk:cloudformation:props":{"generateSecretString":{}}}}}}}},"Integ":{"id":"Integ","path":"lamsec-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsec-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsec-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsec-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsec-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsec-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.adoc index b94900916..de90c0e8e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToSns(this, 'test-lambda-sns', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.lambdasns.*; new LambdaToSns(this, "test-lambda-sns-stack", new LambdaToSnsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -218,6 +218,10 @@ and higher functions) image::aws-lambda-sns.png["Diagram showing the Lambda function, SNS topic and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to call SNS, here are many examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns/actions['example']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/integ.json index f28b94074..e06d2bbb7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamsns-deployFunction/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamsnsdeployFunctionIntegDefaultTestDeployAssert36FE5D09" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsns-deployFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsns-deployFunction.assets.json index 260619e0b..59d25e7e4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsns-deployFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsns-deployFunction.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { "displayName": "test-lambda-sns/LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region-86d36d19": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "04d2b35bd0a00b9ed7527435892abc66a3ebd581d4efde3bf874fd3282550e8a": { + "8884492db6810ff50f1ee1448dc700ec7dff0e32bca1337890ec6de0cf4c1625": { "displayName": "lamsns-deployFunction Template", "source": { "path": "lamsns-deployFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-389b3f14": { + "current_account-current_region-c6e82a47": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "04d2b35bd0a00b9ed7527435892abc66a3ebd581d4efde3bf874fd3282550e8a.json", + "objectKey": "8884492db6810ff50f1ee1448dc700ec7dff0e32bca1337890ec6de0cf4c1625.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsns-deployFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsns-deployFunction.template.json index 513b5de4f..6323e7e37 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsns-deployFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsns-deployFunction.template.json @@ -125,7 +125,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -148,7 +148,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsnsdeployFunctionIntegDefaultTestDeployAssert36FE5D09.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsnsdeployFunctionIntegDefaultTestDeployAssert36FE5D09.assets.json index d2202836e..e2efb11d4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsnsdeployFunctionIntegDefaultTestDeployAssert36FE5D09.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/lamsnsdeployFunctionIntegDefaultTestDeployAssert36FE5D09.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamsnsdeployFunctionIntegDefaultTestDeployAssert36FE5D09 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/manifest.json index 6ee45a3a3..f34488f86 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/04d2b35bd0a00b9ed7527435892abc66a3ebd581d4efde3bf874fd3282550e8a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8884492db6810ff50f1ee1448dc700ec7dff0e32bca1337890ec6de0cf4c1625.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -340,57 +340,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -399,7 +390,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -476,7 +470,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -620,7 +614,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -649,7 +646,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -713,7 +713,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -747,7 +750,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -770,7 +776,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -800,6 +809,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/tree.json index 62084e65b..d6949023d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamsns-deployFunction":{"id":"lamsns-deployFunction","path":"lamsns-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"test-lambda-sns":{"id":"test-lambda-sns","path":"lamsns-deployFunction/test-lambda-sns","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sns.LambdaToSns","version":"2.86.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"sns:Publish","Effect":"Allow","Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"}},{"Action":["kms:Decrypt","kms:GenerateDataKey*"],"Condition":{"ForAnyValue:StringEquals":{"kms:ResourceAliases":"alias/aws/sns"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":key/*"]]}}],"Version":"2012-10-17"},"policyName":"testlambdasnsLambdaFunctionServiceRoleDefaultPolicyBB1D55CB","roles":[{"Ref":"testlambdasnsLambdaFunctionServiceRole9C412F74"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SNS_TOPIC_ARN":{"Ref":"testlambdasnsSnsTopic57DFED98"},"SNS_TOPIC_NAME":{"Fn::GetAtt":["testlambdasnsSnsTopic57DFED98","TopicName"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasnsLambdaFunctionServiceRole9C412F74","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasnsLambdaFunctioninlinePolicyAddedToExecutionRole05A095F20","roles":[{"Ref":"testlambdasnsLambdaFunctionServiceRole9C412F74"}]}}}}}}},"aws-managed-key":{"id":"aws-managed-key","path":"lamsns-deployFunction/test-lambda-sns/aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":[]}},"SnsTopic":{"id":"SnsTopic","path":"lamsns-deployFunction/test-lambda-sns/SnsTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Topic","version":"2.206.0","metadata":[{"masterKey":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/SnsTopic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopic","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Topic","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/sns"]]}}}},"Policy":{"id":"Policy","path":"lamsns-deployFunction/test-lambda-sns/SnsTopic/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.TopicPolicy","version":"2.206.0","metadata":[{"topics":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/SnsTopic/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopicPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::TopicPolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"StringEquals":{"AWS:SourceOwner":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"TopicOwnerOnlyAccess"},{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"topics":[{"Ref":"testlambdasnsSnsTopic57DFED98"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamsns-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsns-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsns-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsns-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsns-deployFunction":{"id":"lamsns-deployFunction","path":"lamsns-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sns":{"id":"test-lambda-sns","path":"lamsns-deployFunction/test-lambda-sns","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sns.LambdaToSns","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"sns:Publish","Effect":"Allow","Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"}},{"Action":["kms:Decrypt","kms:GenerateDataKey*"],"Condition":{"ForAnyValue:StringEquals":{"kms:ResourceAliases":"alias/aws/sns"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":key/*"]]}}],"Version":"2012-10-17"},"policyName":"testlambdasnsLambdaFunctionServiceRoleDefaultPolicyBB1D55CB","roles":[{"Ref":"testlambdasnsLambdaFunctionServiceRole9C412F74"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SNS_TOPIC_ARN":{"Ref":"testlambdasnsSnsTopic57DFED98"},"SNS_TOPIC_NAME":{"Fn::GetAtt":["testlambdasnsSnsTopic57DFED98","TopicName"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasnsLambdaFunctionServiceRole9C412F74","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasnsLambdaFunctioninlinePolicyAddedToExecutionRole05A095F20","roles":[{"Ref":"testlambdasnsLambdaFunctionServiceRole9C412F74"}]}}}}}}},"aws-managed-key":{"id":"aws-managed-key","path":"lamsns-deployFunction/test-lambda-sns/aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"SnsTopic":{"id":"SnsTopic","path":"lamsns-deployFunction/test-lambda-sns/SnsTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Topic","version":"2.223.0","metadata":[{"masterKey":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/SnsTopic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopic","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Topic","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/sns"]]}}}},"Policy":{"id":"Policy","path":"lamsns-deployFunction/test-lambda-sns/SnsTopic/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.TopicPolicy","version":"2.223.0","metadata":[{"topics":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunction/test-lambda-sns/SnsTopic/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopicPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::TopicPolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"StringEquals":{"AWS:SourceOwner":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"TopicOwnerOnlyAccess"},{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"topics":[{"Ref":"testlambdasnsSnsTopic57DFED98"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamsns-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsns-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsns-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsns-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/lamsns-deployFunctionWithVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/lamsns-deployFunctionWithVpc.assets.json index 58bdb9fec..cbcd77c67 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/lamsns-deployFunctionWithVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/lamsns-deployFunctionWithVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "12bd769eb2a6c8b37252664bfb902a155fb4915c82b8b4fb25ce4882cc5a3592": { + "a91a2ebd507b10bee04b74cc0f23aac472b3571a076cf18572ef9e2c5f632981": { "displayName": "lamsns-deployFunctionWithVpc Template", "source": { "path": "lamsns-deployFunctionWithVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-21b23063": { + "current_account-current_region-2774b7aa": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "12bd769eb2a6c8b37252664bfb902a155fb4915c82b8b4fb25ce4882cc5a3592.json", + "objectKey": "a91a2ebd507b10bee04b74cc0f23aac472b3571a076cf18572ef9e2c5f632981.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/lamsns-deployFunctionWithVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/lamsns-deployFunctionWithVpc.template.json index c6eee1d46..4c6be20d3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/lamsns-deployFunctionWithVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/lamsns-deployFunctionWithVpc.template.json @@ -199,7 +199,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/manifest.json index 197850deb..d3cf1a0b4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/12bd769eb2a6c8b37252664bfb902a155fb4915c82b8b4fb25ce4882cc5a3592.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a91a2ebd507b10bee04b74cc0f23aac472b3571a076cf18572ef9e2c5f632981.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/tree.json index fb110f5ff..44842fab0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-deployFunctionWithVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsns-deployFunctionWithVpc":{"id":"lamsns-deployFunctionWithVpc","path":"lamsns-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sns":{"id":"test-lambda-sns","path":"lamsns-deployFunctionWithVpc/test-lambda-sns","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sns.LambdaToSns","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":"sns:Publish","Effect":"Allow","Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"}},{"Action":["kms:Decrypt","kms:GenerateDataKey*"],"Condition":{"ForAnyValue:StringEquals":{"kms:ResourceAliases":"alias/aws/sns"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":key/*"]]}}],"Version":"2012-10-17"},"policyName":"testlambdasnsLambdaFunctionServiceRoleDefaultPolicyBB1D55CB","roles":[{"Ref":"testlambdasnsLambdaFunctionServiceRole9C412F74"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsns-deployFunctionWithVpc/test-lambda-sns/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SNS_TOPIC_ARN":{"Ref":"testlambdasnsSnsTopic57DFED98"},"SNS_TOPIC_NAME":{"Fn::GetAtt":["testlambdasnsSnsTopic57DFED98","TopicName"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasnsLambdaFunctionServiceRole9C412F74","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasnsReplaceDefaultSecurityGroupsecuritygroup071D13CB","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasnsLambdaFunctioninlinePolicyAddedToExecutionRole05A095F20","roles":[{"Ref":"testlambdasnsLambdaFunctionServiceRole9C412F74"}]}}}}}}},"aws-managed-key":{"id":"aws-managed-key","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"SnsTopic":{"id":"SnsTopic","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/SnsTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Topic","version":"2.223.0","metadata":[{"masterKey":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/SnsTopic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopic","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Topic","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/sns"]]}}}},"Policy":{"id":"Policy","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/SnsTopic/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.TopicPolicy","version":"2.223.0","metadata":[{"topics":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/SnsTopic/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopicPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::TopicPolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"StringEquals":{"AWS:SourceOwner":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"TopicOwnerOnlyAccess"},{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"topics":[{"Ref":"testlambdasnsSnsTopic57DFED98"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamsns-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsns-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsns-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SNS":{"id":"SNS","path":"lamsns-deployFunctionWithVpc/Vpc/SNS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/SNS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamsnsdeployFunctionWithVpcSNSsecuritygroup072F337C","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".sns"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsns-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsns-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsns-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsns-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamsns-deployFunctionWithVpc-SNS-security-group":{"id":"lamsns-deployFunctionWithVpc-SNS-security-group","path":"lamsns-deployFunctionWithVpc/lamsns-deployFunctionWithVpc-SNS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/lamsns-deployFunctionWithVpc-SNS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsns-deployFunctionWithVpc/lamsns-deployFunctionWithVpc-SNS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamsns-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsns-deployFunctionWithVpc":{"id":"lamsns-deployFunctionWithVpc","path":"lamsns-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sns":{"id":"test-lambda-sns","path":"lamsns-deployFunctionWithVpc/test-lambda-sns","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sns.LambdaToSns","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":"sns:Publish","Effect":"Allow","Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"}},{"Action":["kms:Decrypt","kms:GenerateDataKey*"],"Condition":{"ForAnyValue:StringEquals":{"kms:ResourceAliases":"alias/aws/sns"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":key/*"]]}}],"Version":"2012-10-17"},"policyName":"testlambdasnsLambdaFunctionServiceRoleDefaultPolicyBB1D55CB","roles":[{"Ref":"testlambdasnsLambdaFunctionServiceRole9C412F74"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsns-deployFunctionWithVpc/test-lambda-sns/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SNS_TOPIC_ARN":{"Ref":"testlambdasnsSnsTopic57DFED98"},"SNS_TOPIC_NAME":{"Fn::GetAtt":["testlambdasnsSnsTopic57DFED98","TopicName"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasnsLambdaFunctionServiceRole9C412F74","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasnsReplaceDefaultSecurityGroupsecuritygroup071D13CB","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasnsLambdaFunctioninlinePolicyAddedToExecutionRole05A095F20","roles":[{"Ref":"testlambdasnsLambdaFunctionServiceRole9C412F74"}]}}}}}}},"aws-managed-key":{"id":"aws-managed-key","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"SnsTopic":{"id":"SnsTopic","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/SnsTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Topic","version":"2.223.0","metadata":[{"masterKey":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/SnsTopic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopic","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Topic","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/sns"]]}}}},"Policy":{"id":"Policy","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/SnsTopic/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.TopicPolicy","version":"2.223.0","metadata":[{"topics":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/test-lambda-sns/SnsTopic/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopicPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::TopicPolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"StringEquals":{"AWS:SourceOwner":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"TopicOwnerOnlyAccess"},{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"topics":[{"Ref":"testlambdasnsSnsTopic57DFED98"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamsns-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsns-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsns-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsns-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SNS":{"id":"SNS","path":"lamsns-deployFunctionWithVpc/Vpc/SNS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/Vpc/SNS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsns-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamsnsdeployFunctionWithVpcSNSsecuritygroup072F337C","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".sns"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsns-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsns-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsns-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsns-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamsns-deployFunctionWithVpc-SNS-security-group":{"id":"lamsns-deployFunctionWithVpc-SNS-security-group","path":"lamsns-deployFunctionWithVpc/lamsns-deployFunctionWithVpc-SNS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-deployFunctionWithVpc/lamsns-deployFunctionWithVpc-SNS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsns-deployFunctionWithVpc/lamsns-deployFunctionWithVpc-SNS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamsns-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/integ.json index 5246ad1e0..67652c0a9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "lamsns-existingFunction/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "lamsnsexistingFunctionIntegDefaultTestDeployAssert733AE3CB" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsns-existingFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsns-existingFunction.assets.json index 2c9207783..a1178ac50 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsns-existingFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsns-existingFunction.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { "displayName": "LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region-86d36d19": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "fad36393dc6ebe5f647167ba56c72c6918b2ef01bbf620b4fc1a86b94114502a": { + "88e1c38f65a610085b0926446fab0af286e3c71ca3acfce16096e1fa8b0c8351": { "displayName": "lamsns-existingFunction Template", "source": { "path": "lamsns-existingFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-59d877d7": { + "current_account-current_region-0a45b797": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "fad36393dc6ebe5f647167ba56c72c6918b2ef01bbf620b4fc1a86b94114502a.json", + "objectKey": "88e1c38f65a610085b0926446fab0af286e3c71ca3acfce16096e1fa8b0c8351.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsns-existingFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsns-existingFunction.template.json index c579e203e..bbd58229d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsns-existingFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsns-existingFunction.template.json @@ -125,7 +125,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -148,7 +148,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsnsexistingFunctionIntegDefaultTestDeployAssert733AE3CB.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsnsexistingFunctionIntegDefaultTestDeployAssert733AE3CB.assets.json index f8a7c0b96..c11726306 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsnsexistingFunctionIntegDefaultTestDeployAssert733AE3CB.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/lamsnsexistingFunctionIntegDefaultTestDeployAssert733AE3CB.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "lamsnsexistingFunctionIntegDefaultTestDeployAssert733AE3CB Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/manifest.json index 43546012f..96883f803 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/fad36393dc6ebe5f647167ba56c72c6918b2ef01bbf620b4fc1a86b94114502a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/88e1c38f65a610085b0926446fab0af286e3c71ca3acfce16096e1fa8b0c8351.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -340,57 +340,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -399,7 +390,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -476,7 +470,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -620,7 +614,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -649,7 +646,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -713,7 +713,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -747,7 +750,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -770,7 +776,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -800,6 +809,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/tree.json index 2385c79b4..0e87ec0b8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.lamsns-existingFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lamsns-existingFunction":{"id":"lamsns-existingFunction","path":"lamsns-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsns-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsns-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsns-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsns-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"sns:Publish","Effect":"Allow","Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"}},{"Action":["kms:Decrypt","kms:GenerateDataKey*"],"Condition":{"ForAnyValue:StringEquals":{"kms:ResourceAliases":"alias/aws/sns"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":key/*"]]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsns-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsns-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lamsns-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsns-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsns-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SNS_TOPIC_ARN":{"Ref":"testlambdasnsSnsTopic57DFED98"},"SNS_TOPIC_NAME":{"Fn::GetAtt":["testlambdasnsSnsTopic57DFED98","TopicName"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsns-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-sns":{"id":"test-lambda-sns","path":"lamsns-existingFunction/test-lambda-sns","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sns.LambdaToSns","version":"2.86.0"},"children":{"aws-managed-key":{"id":"aws-managed-key","path":"lamsns-existingFunction/test-lambda-sns/aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":[]}},"SnsTopic":{"id":"SnsTopic","path":"lamsns-existingFunction/test-lambda-sns/SnsTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Topic","version":"2.206.0","metadata":[{"masterKey":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsns-existingFunction/test-lambda-sns/SnsTopic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopic","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Topic","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/sns"]]}}}},"Policy":{"id":"Policy","path":"lamsns-existingFunction/test-lambda-sns/SnsTopic/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.TopicPolicy","version":"2.206.0","metadata":[{"topics":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-existingFunction/test-lambda-sns/SnsTopic/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopicPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::TopicPolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"StringEquals":{"AWS:SourceOwner":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"TopicOwnerOnlyAccess"},{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"topics":[{"Ref":"testlambdasnsSnsTopic57DFED98"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamsns-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsns-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsns-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsns-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsns-existingFunction":{"id":"lamsns-existingFunction","path":"lamsns-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsns-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsns-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsns-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsns-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"sns:Publish","Effect":"Allow","Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"}},{"Action":["kms:Decrypt","kms:GenerateDataKey*"],"Condition":{"ForAnyValue:StringEquals":{"kms:ResourceAliases":"alias/aws/sns"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":key/*"]]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsns-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsns-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsns-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsns-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsns-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SNS_TOPIC_ARN":{"Ref":"testlambdasnsSnsTopic57DFED98"},"SNS_TOPIC_NAME":{"Fn::GetAtt":["testlambdasnsSnsTopic57DFED98","TopicName"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsns-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-sns":{"id":"test-lambda-sns","path":"lamsns-existingFunction/test-lambda-sns","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sns.LambdaToSns","version":"2.95.1"},"children":{"aws-managed-key":{"id":"aws-managed-key","path":"lamsns-existingFunction/test-lambda-sns/aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"SnsTopic":{"id":"SnsTopic","path":"lamsns-existingFunction/test-lambda-sns/SnsTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Topic","version":"2.223.0","metadata":[{"masterKey":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsns-existingFunction/test-lambda-sns/SnsTopic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopic","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Topic","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/sns"]]}}}},"Policy":{"id":"Policy","path":"lamsns-existingFunction/test-lambda-sns/SnsTopic/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.TopicPolicy","version":"2.223.0","metadata":[{"topics":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsns-existingFunction/test-lambda-sns/SnsTopic/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopicPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::TopicPolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"StringEquals":{"AWS:SourceOwner":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"TopicOwnerOnlyAccess"},{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Ref":"testlambdasnsSnsTopic57DFED98"},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"topics":[{"Ref":"testlambdasnsSnsTopic57DFED98"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamsns-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsns-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsns-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsns-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsns-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsns-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.adoc index 7a1c2fadc..8d7ff364f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.adoc @@ -51,12 +51,12 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToSqsToLambda(this, 'LambdaToSqsToLambdaPattern', { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`producer-lambda`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`consumer-lambda`) } @@ -103,12 +103,12 @@ import software.amazon.awsconstructs.services.lambdasqslambda.*; new LambdaToSqsToLambda(this, "LambdaToSqsToLambdaPattern", new LambdaToSqsToLambdaProps.Builder() .producerLambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("producer-lambda")) .handler("index.handler") .build()) .consumerLambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("consumer-lambda")) .handler("index.handler") .build()) @@ -256,6 +256,10 @@ Managed KMS Key. image::aws-lambda-sqs-lambda.png["Diagram showing the Lambda functions, SQS queue and dlq, CloudWatch log groups and IAM roles created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function interact with SQS, here many examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sqs/actions['examples']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js new file mode 100755 index 000000000..cf4fc6fb9 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js @@ -0,0 +1,30 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +exports.handler = () => { + console.log('Loading producer function'); + const params = { + MessageBody: 'sample-message-body', + QueueUrl: process.env.SQS_QUEUE_URL + }; + const sqs = new aws.SQS(); + sqs.sendMessage(params, function (err, data) { + if (err) { + throw Error('An error occurred sending the message.'); + } else { + console.log('Message was successfully sent.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js new file mode 100755 index 000000000..0d807512d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = (event) => { + console.log('Loading consumer function'); + event.Records.forEach(record => { + const { body } = record; + console.log(body); + }); + return {}; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/integ.json index 4e103ca61..c7e44e651 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamsqslam-defaultDeployment/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamsqslam-defaultDeployment/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamsqslamdefaultDeploymentIntegDefaultTestDeployAssertE702E6E4" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslam-defaultDeployment.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslam-defaultDeployment.assets.json index 80cddadd1..516ff6f79 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslam-defaultDeployment.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslam-defaultDeployment.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d": { + "displayName": "test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code", "source": { "path": "asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-f8513c3b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" @@ -15,27 +16,29 @@ } }, "d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6": { + "displayName": "test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code", "source": { "path": "asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-bd057296": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "a9a6324de163e98d42c8ee5b705865fca0b3325f86c664a61ef5e31ce1665f36": { + "188cea78029df91a012c483565c4f9a5d8879fea466bcafe83bc8ceb7481829a": { + "displayName": "lamsqslam-defaultDeployment Template", "source": { "path": "lamsqslam-defaultDeployment.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-04b0ca28": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a9a6324de163e98d42c8ee5b705865fca0b3325f86c664a61ef5e31ce1665f36.json", + "objectKey": "188cea78029df91a012c483565c4f9a5d8879fea466bcafe83bc8ceb7481829a.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslam-defaultDeployment.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslam-defaultDeployment.template.json index bbddeceda..4212c7e51 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslam-defaultDeployment.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslam-defaultDeployment.template.json @@ -117,7 +117,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -451,7 +451,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslamdefaultDeploymentIntegDefaultTestDeployAssertE702E6E4.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslamdefaultDeploymentIntegDefaultTestDeployAssertE702E6E4.assets.json index 16c8e3879..9e4a1716a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslamdefaultDeploymentIntegDefaultTestDeployAssertE702E6E4.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/lamsqslamdefaultDeploymentIntegDefaultTestDeployAssertE702E6E4.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamsqslamdefaultDeploymentIntegDefaultTestDeployAssertE702E6E4 Template", "source": { "path": "lamsqslamdefaultDeploymentIntegDefaultTestDeployAssertE702E6E4.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/manifest.json index 3be855926..fdc1c1511 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamsqslamdefaultDeploymentIntegDefaultTestDeployAssertE702E6E4.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a9a6324de163e98d42c8ee5b705865fca0b3325f86c664a61ef5e31ce1665f36.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/188cea78029df91a012c483565c4f9a5d8879fea466bcafe83bc8ceb7481829a.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -535,7 +535,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/tree.json index 4d18cacd9..a5e024585 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-defaultDeployment.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamsqslam-defaultDeployment":{"id":"lamsqslam-defaultDeployment","path":"lamsqslam-defaultDeployment","children":{"test-lambda-sqs-lambda":{"id":"test-lambda-sqs-lambda","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda","children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleDefaultPolicyA63E8A47","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctioninlinePolicyAddedToExecutionRole0CFE94A99","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"queue-dlq":{"id":"queue-dlq","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueuedlq4B0084E6"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]}},"queue":{"id":"queue","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue","children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"maxReceiveCount":15}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.80.0"}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRoleDefaultPolicyF38BA227","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctioninlinePolicyAddedToExecutionRole04BCB807B","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"SqsEventSource:lamsqslamdefaultDeploymenttestlambdasqslambdalambdatosqsqueue3E64D956":{"id":"SqsEventSource:lamsqslamdefaultDeploymenttestlambdasqslambdalambdatosqsqueue3E64D956","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamdefaultDeploymenttestlambdasqslambdalambdatosqsqueue3E64D956","children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamdefaultDeploymenttestlambdasqslambdalambdatosqsqueue3E64D956/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"functionName":{"Ref":"testlambdasqslambdasqstolambdaLambdaFunction81308327"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.80.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamsqslam-defaultDeployment/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-defaultDeployment/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamsqslam-defaultDeployment/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-defaultDeployment/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-defaultDeployment/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-defaultDeployment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-defaultDeployment/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-defaultDeployment/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqslam-defaultDeployment":{"id":"lamsqslam-defaultDeployment","path":"lamsqslam-defaultDeployment","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sqs-lambda":{"id":"test-lambda-sqs-lambda","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.95.1"},"children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleDefaultPolicyA63E8A47","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctioninlinePolicyAddedToExecutionRole0CFE94A99","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueuedlq4B0084E6"}]}}}}}}},"queue":{"id":"queue","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}]}}}}}}}}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRoleDefaultPolicyF38BA227","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctioninlinePolicyAddedToExecutionRole04BCB807B","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}}}}},"SqsEventSource:lamsqslamdefaultDeploymenttestlambdasqslambdalambdatosqsqueue3E64D956":{"id":"SqsEventSource:lamsqslamdefaultDeploymenttestlambdasqslambdalambdatosqsqueue3E64D956","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamdefaultDeploymenttestlambdasqslambdalambdatosqsqueue3E64D956","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-defaultDeployment/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamdefaultDeploymenttestlambdasqslambdalambdatosqsqueue3E64D956/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"functionName":{"Ref":"testlambdasqslambdasqstolambdaLambdaFunction81308327"}}}}}}}}}}}},"Integ":{"id":"Integ","path":"lamsqslam-defaultDeployment/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-defaultDeployment/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqslam-defaultDeployment/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-defaultDeployment/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-defaultDeployment/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-defaultDeployment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-defaultDeployment/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-defaultDeployment/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/lamsqslam-deployProducerFunctionWithVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/lamsqslam-deployProducerFunctionWithVpc.assets.json index 5e6b80bb3..a9d14890f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/lamsqslam-deployProducerFunctionWithVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/lamsqslam-deployProducerFunctionWithVpc.assets.json @@ -43,16 +43,16 @@ } } }, - "4ae7faa4cd8bca9527d03a5c1b12b9f8ab61844ac9aa153b8f30405946edc4a1": { + "38a9f54d0804c351da49fea271dd9e07ae91696ea195a3e881458a4a03a9b7e1": { "displayName": "lamsqslam-deployProducerFunctionWithVpc Template", "source": { "path": "lamsqslam-deployProducerFunctionWithVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-f2c9cfb2": { + "current_account-current_region-60518dfc": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4ae7faa4cd8bca9527d03a5c1b12b9f8ab61844ac9aa153b8f30405946edc4a1.json", + "objectKey": "38a9f54d0804c351da49fea271dd9e07ae91696ea195a3e881458a4a03a9b7e1.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/lamsqslam-deployProducerFunctionWithVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/lamsqslam-deployProducerFunctionWithVpc.template.json index 44196f456..584984138 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/lamsqslam-deployProducerFunctionWithVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/lamsqslam-deployProducerFunctionWithVpc.template.json @@ -168,7 +168,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, @@ -882,7 +882,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/manifest.json index 9b3a90712..482e06e9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4ae7faa4cd8bca9527d03a5c1b12b9f8ab61844ac9aa153b8f30405946edc4a1.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/38a9f54d0804c351da49fea271dd9e07ae91696ea195a3e881458a4a03a9b7e1.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/tree.json index 78ffee936..fe8a78593 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-deployProducerFunctionWithVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqslam-deployProducerFunctionWithVpc":{"id":"lamsqslam-deployProducerFunctionWithVpc","path":"lamsqslam-deployProducerFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.94.0"},"children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdatosqsLambdaFunctionServiceRoleDefaultPolicy672BFE5F","roles":[{"Ref":"testlambdasqslambdatosqsLambdaFunctionServiceRole9A15D8F5"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqslambdatosqsqueue5A401298"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdatosqsLambdaFunctionServiceRole9A15D8F5","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"testlambdasqsVpcisolatedSubnet1Subnet75F315F8"},{"Ref":"testlambdasqsVpcisolatedSubnet2Subnet320D7431"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasqslambdatosqsReplaceDefaultSecurityGroupsecuritygroupD9549651","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdatosqsLambdaFunctioninlinePolicyAddedToExecutionRole009C52B5C","roles":[{"Ref":"testlambdasqslambdatosqsLambdaFunctionServiceRole9A15D8F5"}]}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueuedlqC154C220","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueuedlqC154C220","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdatosqsqueuedlqC154C220"}]}}}}}}},"queue":{"id":"queue","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqslambdatosqsqueuedlqC154C220","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdatosqsqueue5A401298"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}},"Acl":{"id":"Acl","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testlambdasqsVpcisolatedSubnet1RouteTable9070A207"},"subnetId":{"Ref":"testlambdasqsVpcisolatedSubnet1Subnet75F315F8"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}},"Acl":{"id":"Acl","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testlambdasqsVpcisolatedSubnet2RouteTable1C5B9E86"},"subnetId":{"Ref":"testlambdasqsVpcisolatedSubnet2Subnet320D7431"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsVpcFlowLogLogGroup5E27ADE6","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqsVpcFlowLogIAMRoleDefaultPolicy2856C7F6","roles":[{"Ref":"testlambdasqsVpcFlowLogIAMRole79FE4957"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["testlambdasqsVpcFlowLogIAMRole79FE4957","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"testlambdasqsVpcFlowLogLogGroup5E27ADE6"},"resourceId":{"Ref":"testlambdasqsVpc85322AF3"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SQS":{"id":"SQS","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/SQS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/SQS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["testlambdasqstestlambdasqsSQSsecuritygroupBDBA458D","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".sqs"]]},"subnetIds":[{"Ref":"testlambdasqsVpcisolatedSubnet1Subnet75F315F8"},{"Ref":"testlambdasqsVpcisolatedSubnet2Subnet320D7431"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}}}}}},"test-lambda-sqs-SQS-security-group":{"id":"test-lambda-sqs-SQS-security-group","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/test-lambda-sqs-SQS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/test-lambda-sqs-SQS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/test-lambda-sqs-SQS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["testlambdasqsVpc85322AF3","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["testlambdasqsVpc85322AF3","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}}}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqssqstolambdaLambdaFunctionServiceRoleDefaultPolicy9D533CC5","roles":[{"Ref":"testlambdasqssqstolambdaLambdaFunctionServiceRoleB914400A"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqssqstolambdaLambdaFunctionServiceRoleB914400A","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqssqstolambdaLambdaFunctioninlinePolicyAddedToExecutionRole0C94161AF","roles":[{"Ref":"testlambdasqssqstolambdaLambdaFunctionServiceRoleB914400A"}]}}}}},"SqsEventSource:lamsqslamdeployProducerFunctionWithVpctestlambdasqslambdatosqsqueueD62DE11E":{"id":"SqsEventSource:lamsqslamdeployProducerFunctionWithVpctestlambdasqslambdatosqsqueueD62DE11E","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamdeployProducerFunctionWithVpctestlambdasqslambdatosqsqueueD62DE11E","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamdeployProducerFunctionWithVpctestlambdasqslambdatosqsqueueD62DE11E/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]},"functionName":{"Ref":"testlambdasqssqstolambdaLambdaFunctionDE6481E6"}}}}}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsqslam-deployProducerFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsqslam-deployProducerFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsqslam-deployProducerFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsqslam-deployProducerFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamsqslam-deployProducerFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-deployProducerFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-deployProducerFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqslam-deployProducerFunctionWithVpc":{"id":"lamsqslam-deployProducerFunctionWithVpc","path":"lamsqslam-deployProducerFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.95.1"},"children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdatosqsLambdaFunctionServiceRoleDefaultPolicy672BFE5F","roles":[{"Ref":"testlambdasqslambdatosqsLambdaFunctionServiceRole9A15D8F5"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqslambdatosqsqueue5A401298"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdatosqsLambdaFunctionServiceRole9A15D8F5","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"testlambdasqsVpcisolatedSubnet1Subnet75F315F8"},{"Ref":"testlambdasqsVpcisolatedSubnet2Subnet320D7431"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasqslambdatosqsReplaceDefaultSecurityGroupsecuritygroupD9549651","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdatosqsLambdaFunctioninlinePolicyAddedToExecutionRole009C52B5C","roles":[{"Ref":"testlambdasqslambdatosqsLambdaFunctionServiceRole9A15D8F5"}]}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueuedlqC154C220","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueuedlqC154C220","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdatosqsqueuedlqC154C220"}]}}}}}}},"queue":{"id":"queue","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqslambdatosqsqueuedlqC154C220","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/lambda-to-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdatosqsqueue5A401298"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}},"Acl":{"id":"Acl","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testlambdasqsVpcisolatedSubnet1RouteTable9070A207"},"subnetId":{"Ref":"testlambdasqsVpcisolatedSubnet1Subnet75F315F8"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}},"Acl":{"id":"Acl","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"testlambdasqsVpcisolatedSubnet2RouteTable1C5B9E86"},"subnetId":{"Ref":"testlambdasqsVpcisolatedSubnet2Subnet320D7431"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsVpcFlowLogLogGroup5E27ADE6","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqsVpcFlowLogIAMRoleDefaultPolicy2856C7F6","roles":[{"Ref":"testlambdasqsVpcFlowLogIAMRole79FE4957"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["testlambdasqsVpcFlowLogIAMRole79FE4957","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"testlambdasqsVpcFlowLogLogGroup5E27ADE6"},"resourceId":{"Ref":"testlambdasqsVpc85322AF3"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SQS":{"id":"SQS","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/SQS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc/SQS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["testlambdasqstestlambdasqsSQSsecuritygroupBDBA458D","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".sqs"]]},"subnetIds":[{"Ref":"testlambdasqsVpcisolatedSubnet1Subnet75F315F8"},{"Ref":"testlambdasqsVpcisolatedSubnet2Subnet320D7431"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}}}}}},"test-lambda-sqs-SQS-security-group":{"id":"test-lambda-sqs-SQS-security-group","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/test-lambda-sqs-SQS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/test-lambda-sqs-SQS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/test-lambda-sqs-SQS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["testlambdasqsVpc85322AF3","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["testlambdasqsVpc85322AF3","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"testlambdasqsVpc85322AF3"}}}}}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqssqstolambdaLambdaFunctionServiceRoleDefaultPolicy9D533CC5","roles":[{"Ref":"testlambdasqssqstolambdaLambdaFunctionServiceRoleB914400A"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqssqstolambdaLambdaFunctionServiceRoleB914400A","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqssqstolambdaLambdaFunctioninlinePolicyAddedToExecutionRole0C94161AF","roles":[{"Ref":"testlambdasqssqstolambdaLambdaFunctionServiceRoleB914400A"}]}}}}},"SqsEventSource:lamsqslamdeployProducerFunctionWithVpctestlambdasqslambdatosqsqueueD62DE11E":{"id":"SqsEventSource:lamsqslamdeployProducerFunctionWithVpctestlambdasqslambdatosqsqueueD62DE11E","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamdeployProducerFunctionWithVpctestlambdasqslambdatosqsqueueD62DE11E","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-deployProducerFunctionWithVpc/test-lambda-sqs/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamdeployProducerFunctionWithVpctestlambdasqslambdatosqsqueueD62DE11E/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testlambdasqslambdatosqsqueue5A401298","Arn"]},"functionName":{"Ref":"testlambdasqssqstolambdaLambdaFunctionDE6481E6"}}}}}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsqslam-deployProducerFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsqslam-deployProducerFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsqslam-deployProducerFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsqslam-deployProducerFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"lamsqslam-deployProducerFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-deployProducerFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-deployProducerFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-deployProducerFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js new file mode 100755 index 000000000..cf4fc6fb9 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js @@ -0,0 +1,30 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +exports.handler = () => { + console.log('Loading producer function'); + const params = { + MessageBody: 'sample-message-body', + QueueUrl: process.env.SQS_QUEUE_URL + }; + const sqs = new aws.SQS(); + sqs.sendMessage(params, function (err, data) { + if (err) { + throw Error('An error occurred sending the message.'); + } else { + console.log('Message was successfully sent.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js new file mode 100755 index 000000000..0d807512d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = (event) => { + console.log('Loading consumer function'); + event.Records.forEach(record => { + const { body } = record; + console.log(body); + }); + return {}; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/integ.json index 8e246276c..d3f817926 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamsqslam-existingConsumerFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamsqslam-existingConsumerFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamsqslamexistingConsumerFunctionIntegDefaultTestDeployAssert11D1BE4A" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslam-existingConsumerFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslam-existingConsumerFunction.assets.json index c46a0b3c3..6a790ffc7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslam-existingConsumerFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslam-existingConsumerFunction.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6": { + "displayName": "LambdaFunction/Code", "source": { "path": "asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-bd057296": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" @@ -15,27 +16,29 @@ } }, "075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d": { + "displayName": "test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code", "source": { "path": "asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-f8513c3b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "f40b4a5ef443f3b080077471fc27c760fc105eb81621bd2acb20a8fde133964e": { + "9e0493fd9d9ef658d5c885f002119e84122aa4f0bf0299f8f042cf5de73b26fe": { + "displayName": "lamsqslam-existingConsumerFunction Template", "source": { "path": "lamsqslam-existingConsumerFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-9c3e386f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f40b4a5ef443f3b080077471fc27c760fc105eb81621bd2acb20a8fde133964e.json", + "objectKey": "9e0493fd9d9ef658d5c885f002119e84122aa4f0bf0299f8f042cf5de73b26fe.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslam-existingConsumerFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslam-existingConsumerFunction.template.json index bfeb133a1..b05be44a8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslam-existingConsumerFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslam-existingConsumerFunction.template.json @@ -116,7 +116,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -298,7 +298,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslamexistingConsumerFunctionIntegDefaultTestDeployAssert11D1BE4A.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslamexistingConsumerFunctionIntegDefaultTestDeployAssert11D1BE4A.assets.json index a91dfdc69..7c968a2a0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslamexistingConsumerFunctionIntegDefaultTestDeployAssert11D1BE4A.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/lamsqslamexistingConsumerFunctionIntegDefaultTestDeployAssert11D1BE4A.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamsqslamexistingConsumerFunctionIntegDefaultTestDeployAssert11D1BE4A Template", "source": { "path": "lamsqslamexistingConsumerFunctionIntegDefaultTestDeployAssert11D1BE4A.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/manifest.json index 496c8e3aa..56f9a0ac7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamsqslamexistingConsumerFunctionIntegDefaultTestDeployAssert11D1BE4A.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f40b4a5ef443f3b080077471fc27c760fc105eb81621bd2acb20a8fde133964e.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9e0493fd9d9ef658d5c885f002119e84122aa4f0bf0299f8f042cf5de73b26fe.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -535,7 +535,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/tree.json index b1a61fd9c..157b5fc63 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingConsumerFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamsqslam-existingConsumerFunction":{"id":"lamsqslam-existingConsumerFunction","path":"lamsqslam-existingConsumerFunction","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingConsumerFunction/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqslam-existingConsumerFunction/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqslam-existingConsumerFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingConsumerFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingConsumerFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"SqsEventSource:lamsqslamexistingConsumerFunctiontestlambdasqslambdalambdatosqsqueueADB261AF":{"id":"SqsEventSource:lamsqslamexistingConsumerFunctiontestlambdasqslambdalambdatosqsqueueADB261AF","path":"lamsqslam-existingConsumerFunction/LambdaFunction/SqsEventSource:lamsqslamexistingConsumerFunctiontestlambdasqslambdalambdatosqsqueueADB261AF","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunction/SqsEventSource:lamsqslamexistingConsumerFunctiontestlambdasqslambdalambdatosqsqueueADB261AF/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"functionName":{"Ref":"LambdaFunctionBF21E41F"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"test-lambda-sqs-lambda":{"id":"test-lambda-sqs-lambda","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda","children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleDefaultPolicyA63E8A47","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctioninlinePolicyAddedToExecutionRole0CFE94A99","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"queue-dlq":{"id":"queue-dlq","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueuedlq4B0084E6"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]}},"queue":{"id":"queue","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"maxReceiveCount":15}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.80.0"}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/sqs-to-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.80.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamsqslam-existingConsumerFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingConsumerFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingConsumerFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqslam-existingConsumerFunction":{"id":"lamsqslam-existingConsumerFunction","path":"lamsqslam-existingConsumerFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingConsumerFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-existingConsumerFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-existingConsumerFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingConsumerFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingConsumerFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"SqsEventSource:lamsqslamexistingConsumerFunctiontestlambdasqslambdalambdatosqsqueueADB261AF":{"id":"SqsEventSource:lamsqslamexistingConsumerFunctiontestlambdasqslambdalambdatosqsqueueADB261AF","path":"lamsqslam-existingConsumerFunction/LambdaFunction/SqsEventSource:lamsqslamexistingConsumerFunctiontestlambdasqslambdalambdatosqsqueueADB261AF","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/LambdaFunction/SqsEventSource:lamsqslamexistingConsumerFunctiontestlambdasqslambdalambdatosqsqueueADB261AF/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"functionName":{"Ref":"LambdaFunctionBF21E41F"}}}}}}}},"test-lambda-sqs-lambda":{"id":"test-lambda-sqs-lambda","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.95.1"},"children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleDefaultPolicyA63E8A47","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctioninlinePolicyAddedToExecutionRole0CFE94A99","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueuedlq4B0084E6"}]}}}}}}},"queue":{"id":"queue","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}]}}}}}}}}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-existingConsumerFunction/test-lambda-sqs-lambda/sqs-to-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.95.1"}}}},"Integ":{"id":"Integ","path":"lamsqslam-existingConsumerFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingConsumerFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingConsumerFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingConsumerFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js new file mode 100755 index 000000000..cf4fc6fb9 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js @@ -0,0 +1,30 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +exports.handler = () => { + console.log('Loading producer function'); + const params = { + MessageBody: 'sample-message-body', + QueueUrl: process.env.SQS_QUEUE_URL + }; + const sqs = new aws.SQS(); + sqs.sendMessage(params, function (err, data) { + if (err) { + throw Error('An error occurred sending the message.'); + } else { + console.log('Message was successfully sent.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js new file mode 100755 index 000000000..0d807512d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = (event) => { + console.log('Loading consumer function'); + event.Records.forEach(record => { + const { body } = record; + console.log(body); + }); + return {}; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/integ.json index 382cb2b80..048d504f1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamsqslam-existingProducerFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamsqslam-existingProducerFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamsqslamexistingProducerFunctionIntegDefaultTestDeployAssertF27BC9D3" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslam-existingProducerFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslam-existingProducerFunction.assets.json index 5e7d2d1d6..36ca63de7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslam-existingProducerFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslam-existingProducerFunction.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d": { + "displayName": "LambdaFunction/Code", "source": { "path": "asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-f8513c3b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" @@ -15,27 +16,29 @@ } }, "d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6": { + "displayName": "test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code", "source": { "path": "asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-bd057296": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "73aff5148243aebfc253c07ada5075e275407f469aa5da616113b7c02dcbed12": { + "d2fe78e8f1165b737c5d42dbc37f7b2c7dcb54d8aede2b8fdb2350474bfa8a6f": { + "displayName": "lamsqslam-existingProducerFunction Template", "source": { "path": "lamsqslam-existingProducerFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-a9e5fa3a": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "73aff5148243aebfc253c07ada5075e275407f469aa5da616113b7c02dcbed12.json", + "objectKey": "d2fe78e8f1165b737c5d42dbc37f7b2c7dcb54d8aede2b8fdb2350474bfa8a6f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslam-existingProducerFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslam-existingProducerFunction.template.json index 451ebbd34..3e9fb18ec 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslam-existingProducerFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslam-existingProducerFunction.template.json @@ -117,7 +117,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -451,7 +451,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslamexistingProducerFunctionIntegDefaultTestDeployAssertF27BC9D3.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslamexistingProducerFunctionIntegDefaultTestDeployAssertF27BC9D3.assets.json index c74e0690d..3bdfc6c35 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslamexistingProducerFunctionIntegDefaultTestDeployAssertF27BC9D3.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/lamsqslamexistingProducerFunctionIntegDefaultTestDeployAssertF27BC9D3.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamsqslamexistingProducerFunctionIntegDefaultTestDeployAssertF27BC9D3 Template", "source": { "path": "lamsqslamexistingProducerFunctionIntegDefaultTestDeployAssertF27BC9D3.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/manifest.json index f07902b47..53f032ef1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamsqslamexistingProducerFunctionIntegDefaultTestDeployAssertF27BC9D3.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/73aff5148243aebfc253c07ada5075e275407f469aa5da616113b7c02dcbed12.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d2fe78e8f1165b737c5d42dbc37f7b2c7dcb54d8aede2b8fdb2350474bfa8a6f.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -535,7 +535,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/tree.json index 9e64c3696..1cf959a0e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingProducerFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamsqslam-existingProducerFunction":{"id":"lamsqslam-existingProducerFunction","path":"lamsqslam-existingProducerFunction","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingProducerFunction/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqslam-existingProducerFunction/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqslam-existingProducerFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingProducerFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingProducerFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"test-lambda-sqs-lambda":{"id":"test-lambda-sqs-lambda","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda","children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs","children":{"queue-dlq":{"id":"queue-dlq","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueuedlq4B0084E6"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]}},"queue":{"id":"queue","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"maxReceiveCount":15}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.80.0"}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRoleDefaultPolicyF38BA227","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctioninlinePolicyAddedToExecutionRole04BCB807B","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"SqsEventSource:lamsqslamexistingProducerFunctiontestlambdasqslambdalambdatosqsqueue8D69F5FD":{"id":"SqsEventSource:lamsqslamexistingProducerFunctiontestlambdasqslambdalambdatosqsqueue8D69F5FD","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamexistingProducerFunctiontestlambdasqslambdalambdatosqsqueue8D69F5FD","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamexistingProducerFunctiontestlambdasqslambdalambdatosqsqueue8D69F5FD/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"functionName":{"Ref":"testlambdasqslambdasqstolambdaLambdaFunction81308327"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.80.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamsqslam-existingProducerFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingProducerFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingProducerFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqslam-existingProducerFunction":{"id":"lamsqslam-existingProducerFunction","path":"lamsqslam-existingProducerFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingProducerFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-existingProducerFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-existingProducerFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingProducerFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingProducerFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-sqs-lambda":{"id":"test-lambda-sqs-lambda","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.95.1"},"children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueuedlq4B0084E6"}]}}}}}}},"queue":{"id":"queue","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueuedlq4B0084E6","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/lambda-to-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqslambdalambdatosqsqueueF2ED40D2"}]}}}}}}}}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRoleDefaultPolicyF38BA227","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctioninlinePolicyAddedToExecutionRole04BCB807B","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}}}}},"SqsEventSource:lamsqslamexistingProducerFunctiontestlambdasqslambdalambdatosqsqueue8D69F5FD":{"id":"SqsEventSource:lamsqslamexistingProducerFunctiontestlambdasqslambdalambdatosqsqueue8D69F5FD","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamexistingProducerFunctiontestlambdasqslambdalambdatosqsqueue8D69F5FD","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingProducerFunction/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamexistingProducerFunctiontestlambdasqslambdalambdatosqsqueue8D69F5FD/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsqueueF2ED40D2","Arn"]},"functionName":{"Ref":"testlambdasqslambdasqstolambdaLambdaFunction81308327"}}}}}}}}}}}},"Integ":{"id":"Integ","path":"lamsqslam-existingProducerFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingProducerFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingProducerFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingProducerFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js new file mode 100755 index 000000000..cf4fc6fb9 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d/index.js @@ -0,0 +1,30 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +exports.handler = () => { + console.log('Loading producer function'); + const params = { + MessageBody: 'sample-message-body', + QueueUrl: process.env.SQS_QUEUE_URL + }; + const sqs = new aws.SQS(); + sqs.sendMessage(params, function (err, data) { + if (err) { + throw Error('An error occurred sending the message.'); + } else { + console.log('Message was successfully sent.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js new file mode 100755 index 000000000..0d807512d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = (event) => { + console.log('Loading consumer function'); + event.Records.forEach(record => { + const { body } = record; + console.log(body); + }); + return {}; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/integ.json index e24abff47..21befab15 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamsqslam-existingQueue/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamsqslam-existingQueue/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamsqslamexistingQueueIntegDefaultTestDeployAssert8FDCE9FD" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslam-existingQueue.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslam-existingQueue.assets.json index 50714ffac..e1ab9321c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslam-existingQueue.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslam-existingQueue.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d": { + "displayName": "test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code", "source": { "path": "asset.075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-f8513c3b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" @@ -15,27 +16,29 @@ } }, "d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6": { + "displayName": "test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code", "source": { "path": "asset.d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-bd057296": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "6f37f8bc6955590973ea56abce958848ce203732792b806df78e68408e998bb8": { + "61be78ebc9764e4e529a3742c8e43b5b2ae2a54d565e120de8869c25c2787d87": { + "displayName": "lamsqslam-existingQueue Template", "source": { "path": "lamsqslam-existingQueue.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-b2c67f27": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "6f37f8bc6955590973ea56abce958848ce203732792b806df78e68408e998bb8.json", + "objectKey": "61be78ebc9764e4e529a3742c8e43b5b2ae2a54d565e120de8869c25c2787d87.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslam-existingQueue.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslam-existingQueue.template.json index 8874e56d9..2da3f4773 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslam-existingQueue.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslam-existingQueue.template.json @@ -284,7 +284,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -451,7 +451,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslamexistingQueueIntegDefaultTestDeployAssert8FDCE9FD.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslamexistingQueueIntegDefaultTestDeployAssert8FDCE9FD.assets.json index 4b8015025..9f42eccb8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslamexistingQueueIntegDefaultTestDeployAssert8FDCE9FD.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/lamsqslamexistingQueueIntegDefaultTestDeployAssert8FDCE9FD.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamsqslamexistingQueueIntegDefaultTestDeployAssert8FDCE9FD Template", "source": { "path": "lamsqslamexistingQueueIntegDefaultTestDeployAssert8FDCE9FD.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/manifest.json index 38d701139..1310db639 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamsqslamexistingQueueIntegDefaultTestDeployAssert8FDCE9FD.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6f37f8bc6955590973ea56abce958848ce203732792b806df78e68408e998bb8.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/61be78ebc9764e4e529a3742c8e43b5b2ae2a54d565e120de8869c25c2787d87.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -535,7 +535,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/tree.json index a8ff37646..17a2c6a84 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.lamsqslam-existingQueue.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamsqslam-existingQueue":{"id":"lamsqslam-existingQueue","path":"lamsqslam-existingQueue","children":{"existing-sqs-queue-dlq":{"id":"existing-sqs-queue-dlq","path":"lamsqslam-existingQueue/existing-sqs-queue-dlq","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/existing-sqs-queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqslam-existingQueue/existing-sqs-queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/existing-sqs-queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["existingsqsqueuedlq6DF9E3FB","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["existingsqsqueuedlq6DF9E3FB","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"existingsqsqueuedlq6DF9E3FB"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]}},"existing-sqs-queue":{"id":"existing-sqs-queue","path":"lamsqslam-existingQueue/existing-sqs-queue","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/existing-sqs-queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["existingsqsqueuedlq6DF9E3FB","Arn"]},"maxReceiveCount":15}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqslam-existingQueue/existing-sqs-queue/Policy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/existing-sqs-queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"existingsqsqueue6AE880F4"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}},"test-lambda-sqs-lambda":{"id":"test-lambda-sqs-lambda","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda","children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleDefaultPolicyA63E8A47","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"existingsqsqueue6AE880F4"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctioninlinePolicyAddedToExecutionRole0CFE94A99","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.80.0"}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRoleDefaultPolicyF38BA227","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctioninlinePolicyAddedToExecutionRole04BCB807B","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"SqsEventSource:lamsqslamexistingQueueexistingsqsqueue9D244BAE":{"id":"SqsEventSource:lamsqslamexistingQueueexistingsqsqueue9D244BAE","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamexistingQueueexistingsqsqueue9D244BAE","children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamexistingQueueexistingsqsqueue9D244BAE/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]},"functionName":{"Ref":"testlambdasqslambdasqstolambdaLambdaFunction81308327"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.80.0"}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamsqslam-existingQueue/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-existingQueue/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamsqslam-existingQueue/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-existingQueue/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingQueue/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingQueue/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingQueue/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingQueue/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqslam-existingQueue":{"id":"lamsqslam-existingQueue","path":"lamsqslam-existingQueue","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"existing-sqs-queue-dlq":{"id":"existing-sqs-queue-dlq","path":"lamsqslam-existingQueue/existing-sqs-queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/existing-sqs-queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqslam-existingQueue/existing-sqs-queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/existing-sqs-queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["existingsqsqueuedlq6DF9E3FB","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["existingsqsqueuedlq6DF9E3FB","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"existingsqsqueuedlq6DF9E3FB"}]}}}}}}},"existing-sqs-queue":{"id":"existing-sqs-queue","path":"lamsqslam-existingQueue/existing-sqs-queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/existing-sqs-queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["existingsqsqueuedlq6DF9E3FB","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqslam-existingQueue/existing-sqs-queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/existing-sqs-queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"existingsqsqueue6AE880F4"}]}}}}}}},"test-lambda-sqs-lambda":{"id":"test-lambda-sqs-lambda","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs-lambda.LambdaToSqsToLambda","version":"2.95.1"},"children":{"lambda-to-sqs":{"id":"lambda-to-sqs","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleDefaultPolicyA63E8A47","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"075b2d402078d97c329028d1af17df69ef86062dc7ace374b10a10022db6fb8d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"existingsqsqueue6AE880F4"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/lambda-to-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdalambdatosqsLambdaFunctioninlinePolicyAddedToExecutionRole0CFE94A99","roles":[{"Ref":"testlambdasqslambdalambdatosqsLambdaFunctionServiceRoleAE4A8DCD"}]}}}}}}}}},"sqs-to-lambda":{"id":"sqs-to-lambda","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRoleDefaultPolicyF38BA227","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"d685d4fad1e8a913557eb007ae16e135281d3f192a6b557c471e160e3cc557a6.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqslambdasqstolambdaLambdaFunctioninlinePolicyAddedToExecutionRole04BCB807B","roles":[{"Ref":"testlambdasqslambdasqstolambdaLambdaFunctionServiceRole785979D2"}]}}}}},"SqsEventSource:lamsqslamexistingQueueexistingsqsqueue9D244BAE":{"id":"SqsEventSource:lamsqslamexistingQueueexistingsqsqueue9D244BAE","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamexistingQueueexistingsqsqueue9D244BAE","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqslam-existingQueue/test-lambda-sqs-lambda/sqs-to-lambda/LambdaFunction/SqsEventSource:lamsqslamexistingQueueexistingsqsqueue9D244BAE/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["existingsqsqueue6AE880F4","Arn"]},"functionName":{"Ref":"testlambdasqslambdasqstolambdaLambdaFunction81308327"}}}}}}}}}}}},"Integ":{"id":"Integ","path":"lamsqslam-existingQueue/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqslam-existingQueue/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqslam-existingQueue/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqslam-existingQueue/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingQueue/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingQueue/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqslam-existingQueue/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqslam-existingQueue/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.adoc index b14c74207..949b5ebdb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToSqs(this, 'LambdaToSqsPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.lambdasqs.*; new LambdaToSqs(this, "test-lambda-sqs-stack", new LambdaToSqsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -238,6 +238,10 @@ KMS Key. image::aws-lambda-sqs.png["Diagram showing the Lambda function, SQS queue and dlq, CloudWatch log group and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function interact with SQS, here many examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sqs/actions['examples']. (these examples are in JavaScript, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435/index.js new file mode 100755 index 000000000..05d5e994b --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435/index.js @@ -0,0 +1,31 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +console.log('Loading function'); + +exports.handler = () => { + const params = { + MessageBody: 'sample-message-body', + QueueUrl: process.env.SQS_QUEUE_URL + }; + const sqs = new aws.SQS(); + sqs.sendMessage(params, function (err, data) { + if (err) { + throw Error('An error occurred sending the message.'); + } else { + console.log('Message was successfully sent.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/integ.json index 0f5b5f381..9488fc6dc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamsqs-deployFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamsqs-deployFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamsqsdeployFunctionIntegDefaultTestDeployAssert2454A7F7" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqs-deployFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqs-deployFunction.assets.json index 0cac28448..833bf3b90 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqs-deployFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqs-deployFunction.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435": { + "displayName": "test-lambda-sqs/LambdaFunction/Code", "source": { "path": "asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-3d7cf131": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "bfd5c0772919e97d599693a9dc90f27cdb7e14be378a2241b819c8c637115975": { + "39ae1321456e394ddddca3e3ccb973045829c7322e927d0869942f38c0a36eac": { + "displayName": "lamsqs-deployFunction Template", "source": { "path": "lamsqs-deployFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-884a22c0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "bfd5c0772919e97d599693a9dc90f27cdb7e14be378a2241b819c8c637115975.json", + "objectKey": "39ae1321456e394ddddca3e3ccb973045829c7322e927d0869942f38c0a36eac.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqs-deployFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqs-deployFunction.template.json index d9f326289..12f408edc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqs-deployFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqs-deployFunction.template.json @@ -117,7 +117,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqsdeployFunctionIntegDefaultTestDeployAssert2454A7F7.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqsdeployFunctionIntegDefaultTestDeployAssert2454A7F7.assets.json index 307405986..de21a81d5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqsdeployFunctionIntegDefaultTestDeployAssert2454A7F7.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/lamsqsdeployFunctionIntegDefaultTestDeployAssert2454A7F7.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamsqsdeployFunctionIntegDefaultTestDeployAssert2454A7F7 Template", "source": { "path": "lamsqsdeployFunctionIntegDefaultTestDeployAssert2454A7F7.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/manifest.json index c6143f8fa..7ea0b3123 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamsqsdeployFunctionIntegDefaultTestDeployAssert2454A7F7.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/bfd5c0772919e97d599693a9dc90f27cdb7e14be378a2241b819c8c637115975.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/39ae1321456e394ddddca3e3ccb973045829c7322e927d0869942f38c0a36eac.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -344,7 +344,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/tree.json index c76fd83b6..515921bef 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamsqs-deployFunction":{"id":"lamsqs-deployFunction","path":"lamsqs-deployFunction","children":{"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqs-deployFunction/test-lambda-sqs","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctionServiceRoleDefaultPolicyE3CAD09D","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqsqueueDD178B7C"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqsLambdaFunctionServiceRoleC0430CA8","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctioninlinePolicyAddedToExecutionRole0ADACB8F6","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"queue-dlq":{"id":"queue-dlq","path":"lamsqs-deployFunction/test-lambda-sqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqs-deployFunction/test-lambda-sqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueuedlq0AFE8CA9"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]}},"queue":{"id":"queue","path":"lamsqs-deployFunction/test-lambda-sqs/queue","children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"maxReceiveCount":15}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqs-deployFunction/test-lambda-sqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueueDD178B7C"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamsqs-deployFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqs-deployFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamsqs-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqs-deployFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqs-deployFunction":{"id":"lamsqs-deployFunction","path":"lamsqs-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqs-deployFunction/test-lambda-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctionServiceRoleDefaultPolicyE3CAD09D","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqsqueueDD178B7C"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqsLambdaFunctionServiceRoleC0430CA8","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctioninlinePolicyAddedToExecutionRole0ADACB8F6","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"lamsqs-deployFunction/test-lambda-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqs-deployFunction/test-lambda-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueuedlq0AFE8CA9"}]}}}}}}},"queue":{"id":"queue","path":"lamsqs-deployFunction/test-lambda-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqs-deployFunction/test-lambda-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunction/test-lambda-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueueDD178B7C"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamsqs-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqs-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqs-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqs-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/lamsqs-deployFunctionWithVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/lamsqs-deployFunctionWithVpc.assets.json index 8f9ed776c..956a0f7a7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/lamsqs-deployFunctionWithVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/lamsqs-deployFunctionWithVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "4f8ce83173886a6b8c8b396524b4857b73d8f08e8591c9385178a1eda6dd48e0": { + "af85445aec534061087d3c4f133fb098c296a7cb0bda3d510eae6b5e836c9c56": { "displayName": "lamsqs-deployFunctionWithVpc Template", "source": { "path": "lamsqs-deployFunctionWithVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-aabaeebd": { + "current_account-current_region-adeb59b0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4f8ce83173886a6b8c8b396524b4857b73d8f08e8591c9385178a1eda6dd48e0.json", + "objectKey": "af85445aec534061087d3c4f133fb098c296a7cb0bda3d510eae6b5e836c9c56.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/lamsqs-deployFunctionWithVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/lamsqs-deployFunctionWithVpc.template.json index 24ea04f77..64e3fdbd8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/lamsqs-deployFunctionWithVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/lamsqs-deployFunctionWithVpc.template.json @@ -168,7 +168,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/manifest.json index 4ff09a8cc..1c7487dbd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4f8ce83173886a6b8c8b396524b4857b73d8f08e8591c9385178a1eda6dd48e0.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/af85445aec534061087d3c4f133fb098c296a7cb0bda3d510eae6b5e836c9c56.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/tree.json index c093cecef..c59c92d9e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-deployFunctionWithVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqs-deployFunctionWithVpc":{"id":"lamsqs-deployFunctionWithVpc","path":"lamsqs-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctionServiceRoleDefaultPolicyE3CAD09D","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqsqueueDD178B7C"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqsLambdaFunctionServiceRoleC0430CA8","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasqsReplaceDefaultSecurityGroupsecuritygroup2CA205C7","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctioninlinePolicyAddedToExecutionRole0ADACB8F6","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueuedlq0AFE8CA9"}]}}}}}}},"queue":{"id":"queue","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueueDD178B7C"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamsqs-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsqs-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsqs-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SQS":{"id":"SQS","path":"lamsqs-deployFunctionWithVpc/Vpc/SQS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/SQS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamsqsdeployFunctionWithVpcSQSsecuritygroupE4F67F17","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".sqs"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsqs-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsqs-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsqs-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsqs-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamsqs-deployFunctionWithVpc-SQS-security-group":{"id":"lamsqs-deployFunctionWithVpc-SQS-security-group","path":"lamsqs-deployFunctionWithVpc/lamsqs-deployFunctionWithVpc-SQS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/lamsqs-deployFunctionWithVpc-SQS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsqs-deployFunctionWithVpc/lamsqs-deployFunctionWithVpc-SQS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamsqs-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqs-deployFunctionWithVpc":{"id":"lamsqs-deployFunctionWithVpc","path":"lamsqs-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctionServiceRoleDefaultPolicyE3CAD09D","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqsqueueDD178B7C"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqsLambdaFunctionServiceRoleC0430CA8","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdasqsReplaceDefaultSecurityGroupsecuritygroup2CA205C7","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctioninlinePolicyAddedToExecutionRole0ADACB8F6","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueuedlq0AFE8CA9"}]}}}}}}},"queue":{"id":"queue","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/test-lambda-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueueDD178B7C"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamsqs-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamsqs-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamsqs-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamsqs-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SQS":{"id":"SQS","path":"lamsqs-deployFunctionWithVpc/Vpc/SQS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/Vpc/SQS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamsqs-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamsqsdeployFunctionWithVpcSQSsecuritygroupE4F67F17","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".sqs"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamsqs-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamsqs-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamsqs-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamsqs-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamsqs-deployFunctionWithVpc-SQS-security-group":{"id":"lamsqs-deployFunctionWithVpc-SQS-security-group","path":"lamsqs-deployFunctionWithVpc/lamsqs-deployFunctionWithVpc-SQS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-deployFunctionWithVpc/lamsqs-deployFunctionWithVpc-SQS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamsqs-deployFunctionWithVpc/lamsqs-deployFunctionWithVpc-SQS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamsqs-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435/index.js new file mode 100755 index 000000000..05d5e994b --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435/index.js @@ -0,0 +1,31 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +console.log('Loading function'); + +exports.handler = () => { + const params = { + MessageBody: 'sample-message-body', + QueueUrl: process.env.SQS_QUEUE_URL + }; + const sqs = new aws.SQS(); + sqs.sendMessage(params, function (err, data) { + if (err) { + throw Error('An error occurred sending the message.'); + } else { + console.log('Message was successfully sent.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/integ.json index 4e6343a71..13c4470af 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamsqs-existingFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamsqs-existingFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamsqsexistingFunctionIntegDefaultTestDeployAssert1DE6501D" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqs-existingFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqs-existingFunction.assets.json index 2da8a1895..be405039d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqs-existingFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqs-existingFunction.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435": { + "displayName": "LambdaFunction/Code", "source": { "path": "asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-3d7cf131": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "ce53935f5643f3a6bf07f2dcfa5b93a543f2558ec9c6d10ae549f5fa4a409867": { + "7dd6c8fdce55dbb371d497b2bccaa3ad220a9714176cd6c50f0876bfbe211cc4": { + "displayName": "lamsqs-existingFunction Template", "source": { "path": "lamsqs-existingFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-15731d39": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ce53935f5643f3a6bf07f2dcfa5b93a543f2558ec9c6d10ae549f5fa4a409867.json", + "objectKey": "7dd6c8fdce55dbb371d497b2bccaa3ad220a9714176cd6c50f0876bfbe211cc4.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqs-existingFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqs-existingFunction.template.json index 4439f2e7e..21041e5ab 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqs-existingFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqs-existingFunction.template.json @@ -117,7 +117,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqsexistingFunctionIntegDefaultTestDeployAssert1DE6501D.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqsexistingFunctionIntegDefaultTestDeployAssert1DE6501D.assets.json index 6e2351666..4e131c85f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqsexistingFunctionIntegDefaultTestDeployAssert1DE6501D.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/lamsqsexistingFunctionIntegDefaultTestDeployAssert1DE6501D.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamsqsexistingFunctionIntegDefaultTestDeployAssert1DE6501D Template", "source": { "path": "lamsqsexistingFunctionIntegDefaultTestDeployAssert1DE6501D.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/manifest.json index 9c228fb7b..5d5a152dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamsqsexistingFunctionIntegDefaultTestDeployAssert1DE6501D.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ce53935f5643f3a6bf07f2dcfa5b93a543f2558ec9c6d10ae549f5fa4a409867.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7dd6c8fdce55dbb371d497b2bccaa3ad220a9714176cd6c50f0876bfbe211cc4.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -344,7 +344,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/tree.json index c1a6aac45..403b993e1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-existingFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamsqs-existingFunction":{"id":"lamsqs-existingFunction","path":"lamsqs-existingFunction","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqs-existingFunction/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqs-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-existingFunction/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqs-existingFunction/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqs-existingFunction/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqs-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqs-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqs-existingFunction/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqsqueueDD178B7C"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqs-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqs-existingFunction/test-lambda-sqs","children":{"queue-dlq":{"id":"queue-dlq","path":"lamsqs-existingFunction/test-lambda-sqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/test-lambda-sqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqs-existingFunction/test-lambda-sqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/test-lambda-sqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueuedlq0AFE8CA9"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]}},"queue":{"id":"queue","path":"lamsqs-existingFunction/test-lambda-sqs/queue","children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/test-lambda-sqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"maxReceiveCount":15}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqs-existingFunction/test-lambda-sqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/test-lambda-sqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueueDD178B7C"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamsqs-existingFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqs-existingFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamsqs-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqs-existingFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqs-existingFunction":{"id":"lamsqs-existingFunction","path":"lamsqs-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqs-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqs-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqs-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqs-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqs-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqs-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqs-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqsqueueDD178B7C"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqs-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqs-existingFunction/test-lambda-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"lamsqs-existingFunction/test-lambda-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/test-lambda-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqs-existingFunction/test-lambda-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/test-lambda-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueuedlq0AFE8CA9"}]}}}}}}},"queue":{"id":"queue","path":"lamsqs-existingFunction/test-lambda-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/test-lambda-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqs-existingFunction/test-lambda-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-existingFunction/test-lambda-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueueDD178B7C"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamsqs-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqs-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqs-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqs-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435/index.js new file mode 100755 index 000000000..05d5e994b --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435/index.js @@ -0,0 +1,31 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +console.log('Loading function'); + +exports.handler = () => { + const params = { + MessageBody: 'sample-message-body', + QueueUrl: process.env.SQS_QUEUE_URL + }; + const sqs = new aws.SQS(); + sqs.sendMessage(params, function (err, data) { + if (err) { + throw Error('An error occurred sending the message.'); + } else { + console.log('Message was successfully sent.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/integ.json index 48d94ff7a..9e045446f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamsqs-useCmk/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamsqs-useCmk/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamsqsuseCmkIntegDefaultTestDeployAssertCF558D35" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqs-useCmk.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqs-useCmk.assets.json index 5e82b4687..9b8a44c60 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqs-useCmk.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqs-useCmk.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435": { + "displayName": "test-lambda-sqs/LambdaFunction/Code", "source": { "path": "asset.42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-3d7cf131": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "c80d46016eaa208238753b40ff9f354151d37a02976095a20c437ba3063fc4ce": { + "bf864d646f48fe5066798f00cbc900cc21d8b54fde32eca110fc20d5b36900e0": { + "displayName": "lamsqs-useCmk Template", "source": { "path": "lamsqs-useCmk.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-5f5b124d": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c80d46016eaa208238753b40ff9f354151d37a02976095a20c437ba3063fc4ce.json", + "objectKey": "bf864d646f48fe5066798f00cbc900cc21d8b54fde32eca110fc20d5b36900e0.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqs-useCmk.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqs-useCmk.template.json index a4e8664ea..4c2555fc9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqs-useCmk.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqs-useCmk.template.json @@ -132,7 +132,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqsuseCmkIntegDefaultTestDeployAssertCF558D35.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqsuseCmkIntegDefaultTestDeployAssertCF558D35.assets.json index a869a4f84..f4bc1c003 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqsuseCmkIntegDefaultTestDeployAssertCF558D35.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/lamsqsuseCmkIntegDefaultTestDeployAssertCF558D35.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamsqsuseCmkIntegDefaultTestDeployAssertCF558D35 Template", "source": { "path": "lamsqsuseCmkIntegDefaultTestDeployAssertCF558D35.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/manifest.json index c8fdb525c..1b66f4760 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamsqsuseCmkIntegDefaultTestDeployAssertCF558D35.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c80d46016eaa208238753b40ff9f354151d37a02976095a20c437ba3063fc4ce.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/bf864d646f48fe5066798f00cbc900cc21d8b54fde32eca110fc20d5b36900e0.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -380,7 +380,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/tree.json index 9aedf2790..ed420d01a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.lamsqs-useCmk.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamsqs-useCmk":{"id":"lamsqs-useCmk","path":"lamsqs-useCmk","children":{"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqs-useCmk/test-lambda-sqs","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]}},{"Action":["kms:Decrypt","kms:Encrypt","kms:GenerateDataKey*","kms:ReEncrypt*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueKey37A590CE","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctionServiceRoleDefaultPolicyE3CAD09D","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction","children":{"Code":{"id":"Code","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqsqueueDD178B7C"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqsLambdaFunctionServiceRoleC0430CA8","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctioninlinePolicyAddedToExecutionRole0ADACB8F6","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"queue-dlq":{"id":"queue-dlq","path":"lamsqs-useCmk/test-lambda-sqs/queue-dlq","children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqs-useCmk/test-lambda-sqs/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueuedlq0AFE8CA9"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]}},"'queueKey'":{"id":"'queueKey'","path":"lamsqs-useCmk/test-lambda-sqs/'queueKey'","children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/'queueKey'/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.186.0","metadata":[{"enableKeyRotation":true,"removalPolicy":"destroy"}]}},"queue":{"id":"queue","path":"lamsqs-useCmk/test-lambda-sqs/queue","children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::GetAtt":["testlambdasqsqueueKey37A590CE","Arn"]},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"maxReceiveCount":15}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"lamsqs-useCmk/test-lambda-sqs/queue/Policy","children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueueDD178B7C"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"},"encryptionMasterKey":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamsqs-useCmk/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqs-useCmk/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamsqs-useCmk/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqs-useCmk/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-useCmk/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-useCmk/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-useCmk/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-useCmk/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamsqs-useCmk":{"id":"lamsqs-useCmk","path":"lamsqs-useCmk","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-sqs":{"id":"test-lambda-sqs","path":"lamsqs-useCmk/test-lambda-sqs","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-sqs.LambdaToSqs","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:SendMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]}},{"Action":["kms:Decrypt","kms:Encrypt","kms:GenerateDataKey*","kms:ReEncrypt*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdasqsqueueKey37A590CE","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctionServiceRoleDefaultPolicyE3CAD09D","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"42887c62b1163d790cdb42902037c9f639feb35681616a16826e400c8d1a4435.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SQS_QUEUE_URL":{"Ref":"testlambdasqsqueueDD178B7C"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdasqsLambdaFunctionServiceRoleC0430CA8","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdasqsLambdaFunctioninlinePolicyAddedToExecutionRole0ADACB8F6","roles":[{"Ref":"testlambdasqsLambdaFunctionServiceRoleC0430CA8"}]}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"lamsqs-useCmk/test-lambda-sqs/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"lamsqs-useCmk/test-lambda-sqs/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueuedlq0AFE8CA9"}]}}}}}}},"'queueKey'":{"id":"'queueKey'","path":"lamsqs-useCmk/test-lambda-sqs/'queueKey'","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.223.0","metadata":[{"enableKeyRotation":true,"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/'queueKey'/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"queue":{"id":"queue","path":"lamsqs-useCmk/test-lambda-sqs/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"},"encryptionMasterKey":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::GetAtt":["testlambdasqsqueueKey37A590CE","Arn"]},"redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testlambdasqsqueuedlq0AFE8CA9","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"lamsqs-useCmk/test-lambda-sqs/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamsqs-useCmk/test-lambda-sqs/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testlambdasqsqueueDD178B7C","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testlambdasqsqueueDD178B7C"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamsqs-useCmk/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamsqs-useCmk/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamsqs-useCmk/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamsqs-useCmk/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-useCmk/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-useCmk/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamsqs-useCmk/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamsqs-useCmk/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/README.adoc index bceaceb75..adef61948 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/README.adoc @@ -52,7 +52,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, code: lambda.Code.fromAsset(`lambda`), handler: 'index.handler' }, @@ -102,7 +102,7 @@ import software.amazon.awsconstructs.services.lambdassmstringparameter.*; new LambdaToSsmstringparameter(this, "test-lambda-ssmstringparameter-stack", new LambdaToSsmstringparameterProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/integ.json index fcad4c76a..aa21e540a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamssm-deployFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamssm-deployFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamssmdeployFunctionIntegDefaultTestDeployAssert5A420C61" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssm-deployFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssm-deployFunction.assets.json index 0d5b0876d..d974eb1a0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssm-deployFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssm-deployFunction.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "test-lambda-ssmstringparameter/LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "742ce44433cb92527879c537d26ae9d946a1eebcd5940055cb2406aa63bf51d6": { + "2df88d60a4ad8e7b161c56518b550f59aa9f1d179fbe2a48ed2d6099be91a58f": { + "displayName": "lamssm-deployFunction Template", "source": { "path": "lamssm-deployFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-73dc4641": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "742ce44433cb92527879c537d26ae9d946a1eebcd5940055cb2406aa63bf51d6.json", + "objectKey": "2df88d60a4ad8e7b161c56518b550f59aa9f1d179fbe2a48ed2d6099be91a58f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssm-deployFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssm-deployFunction.template.json index aa14d391f..0dc597167 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssm-deployFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssm-deployFunction.template.json @@ -135,7 +135,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssmdeployFunctionIntegDefaultTestDeployAssert5A420C61.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssmdeployFunctionIntegDefaultTestDeployAssert5A420C61.assets.json index 8fbff8fb1..7698e411f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssmdeployFunctionIntegDefaultTestDeployAssert5A420C61.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/lamssmdeployFunctionIntegDefaultTestDeployAssert5A420C61.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamssmdeployFunctionIntegDefaultTestDeployAssert5A420C61 Template", "source": { "path": "lamssmdeployFunctionIntegDefaultTestDeployAssert5A420C61.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/manifest.json index 8e963945c..41b16577e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamssmdeployFunctionIntegDefaultTestDeployAssert5A420C61.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/742ce44433cb92527879c537d26ae9d946a1eebcd5940055cb2406aa63bf51d6.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2df88d60a4ad8e7b161c56518b550f59aa9f1d179fbe2a48ed2d6099be91a58f.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -293,7 +293,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/tree.json index e664bf0a7..517fcb90b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamssm-deployFunction":{"id":"lamssm-deployFunction","path":"lamssm-deployFunction","children":{"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-deployFunction/test-lambda-ssmstringparameter","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}]]}}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctionServiceRoleDefaultPolicyA31F1897","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction","children":{"Code":{"id":"Code","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctioninlinePolicyAddedToExecutionRole0FC2BAAAC","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"stringParameter":{"id":"stringParameter","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/stringParameter","children":{"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/stringParameter/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.186.0","metadata":[{"stringValue":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamssm-deployFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-deployFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamssm-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-deployFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamssm-deployFunction":{"id":"lamssm-deployFunction","path":"lamssm-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-deployFunction/test-lambda-ssmstringparameter","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}]]}}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctionServiceRoleDefaultPolicyA31F1897","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctioninlinePolicyAddedToExecutionRole0FC2BAAAC","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"stringParameter":{"id":"stringParameter","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/stringParameter","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.223.0","metadata":[{"stringValue":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunction/test-lambda-ssmstringparameter/stringParameter/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}}}}}}},"Integ":{"id":"Integ","path":"lamssm-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamssm-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/lamssm-deployFunctionWithExistingVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/lamssm-deployFunctionWithExistingVpc.assets.json index c3ce33059..78a9772d5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/lamssm-deployFunctionWithExistingVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/lamssm-deployFunctionWithExistingVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "bbee8bbd7efcb4ab099674c7edd5991096f544b47959e1a8d47d0119200f7fc5": { + "398a65e6bcd0e02b88fd0690b07e081bc45d1696a533edeb6201757613232ff0": { "displayName": "lamssm-deployFunctionWithExistingVpc Template", "source": { "path": "lamssm-deployFunctionWithExistingVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-912700db": { + "current_account-current_region-2925ad67": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "bbee8bbd7efcb4ab099674c7edd5991096f544b47959e1a8d47d0119200f7fc5.json", + "objectKey": "398a65e6bcd0e02b88fd0690b07e081bc45d1696a533edeb6201757613232ff0.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/lamssm-deployFunctionWithExistingVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/lamssm-deployFunctionWithExistingVpc.template.json index 744c22890..63ace5d0e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/lamssm-deployFunctionWithExistingVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/lamssm-deployFunctionWithExistingVpc.template.json @@ -883,7 +883,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/manifest.json index 9acba19f9..be397c510 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/bbee8bbd7efcb4ab099674c7edd5991096f544b47959e1a8d47d0119200f7fc5.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/398a65e6bcd0e02b88fd0690b07e081bc45d1696a533edeb6201757613232ff0.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/tree.json index eb0e1b1da..b4e6e9628 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithExistingVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamssm-deployFunctionWithExistingVpc":{"id":"lamssm-deployFunctionWithExistingVpc","path":"lamssm-deployFunctionWithExistingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamssm-deployFunctionWithExistingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamssm-deployFunctionWithExistingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamssm-deployFunctionWithExistingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamssm-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SSM":{"id":"SSM","path":"lamssm-deployFunctionWithExistingVpc/Vpc/SSM","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/SSM/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamssmdeployFunctionWithExistingVpcSSMsecuritygroup091BDDCC","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".ssm"]]},"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamssm-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamssm-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamssm-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamssm-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}]]}}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctionServiceRoleDefaultPolicyA31F1897","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdassmstringparameterReplaceDefaultSecurityGroupsecuritygroupBB1CB03C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctioninlinePolicyAddedToExecutionRole0FC2BAAAC","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"stringParameter":{"id":"stringParameter","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/stringParameter","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.223.0","metadata":[{"stringValue":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/stringParameter/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}}}}}}},"lamssm-deployFunctionWithExistingVpc-SSM-security-group":{"id":"lamssm-deployFunctionWithExistingVpc-SSM-security-group","path":"lamssm-deployFunctionWithExistingVpc/lamssm-deployFunctionWithExistingVpc-SSM-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/lamssm-deployFunctionWithExistingVpc-SSM-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamssm-deployFunctionWithExistingVpc/lamssm-deployFunctionWithExistingVpc-SSM-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamssm-deployFunctionWithExistingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunctionWithExistingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunctionWithExistingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamssm-deployFunctionWithExistingVpc":{"id":"lamssm-deployFunctionWithExistingVpc","path":"lamssm-deployFunctionWithExistingVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamssm-deployFunctionWithExistingVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamssm-deployFunctionWithExistingVpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamssm-deployFunctionWithExistingVpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamssm-deployFunctionWithExistingVpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamssm-deployFunctionWithExistingVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SSM":{"id":"SSM","path":"lamssm-deployFunctionWithExistingVpc/Vpc/SSM","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/Vpc/SSM/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithExistingVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamssmdeployFunctionWithExistingVpcSSMsecuritygroup091BDDCC","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".ssm"]]},"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamssm-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamssm-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamssm-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamssm-deployFunctionWithExistingVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}]]}}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctionServiceRoleDefaultPolicyA31F1897","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdassmstringparameterReplaceDefaultSecurityGroupsecuritygroupBB1CB03C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctioninlinePolicyAddedToExecutionRole0FC2BAAAC","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"stringParameter":{"id":"stringParameter","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/stringParameter","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.223.0","metadata":[{"stringValue":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/test-lambda-ssmstringparameter/stringParameter/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}}}}}}},"lamssm-deployFunctionWithExistingVpc-SSM-security-group":{"id":"lamssm-deployFunctionWithExistingVpc-SSM-security-group","path":"lamssm-deployFunctionWithExistingVpc/lamssm-deployFunctionWithExistingVpc-SSM-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithExistingVpc/lamssm-deployFunctionWithExistingVpc-SSM-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamssm-deployFunctionWithExistingVpc/lamssm-deployFunctionWithExistingVpc-SSM-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamssm-deployFunctionWithExistingVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunctionWithExistingVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunctionWithExistingVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunctionWithExistingVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/lamssm-deployFunctionWithVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/lamssm-deployFunctionWithVpc.assets.json index c7451d5b9..f673955b9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/lamssm-deployFunctionWithVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/lamssm-deployFunctionWithVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "8140afa8e56cefd8d47c81243ad4bdf9efc208f31d1bae14b7ef654892087abb": { + "de696ac1c8d9808b37a88103bd38760edb5f9f08008942a496331e9652026d4c": { "displayName": "lamssm-deployFunctionWithVpc Template", "source": { "path": "lamssm-deployFunctionWithVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-cd83fdd9": { + "current_account-current_region-33174adc": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "8140afa8e56cefd8d47c81243ad4bdf9efc208f31d1bae14b7ef654892087abb.json", + "objectKey": "de696ac1c8d9808b37a88103bd38760edb5f9f08008942a496331e9652026d4c.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/lamssm-deployFunctionWithVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/lamssm-deployFunctionWithVpc.template.json index c537578d8..37d7cc0b0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/lamssm-deployFunctionWithVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/lamssm-deployFunctionWithVpc.template.json @@ -186,7 +186,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/manifest.json index 0a21c696a..53e0ee15a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8140afa8e56cefd8d47c81243ad4bdf9efc208f31d1bae14b7ef654892087abb.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/de696ac1c8d9808b37a88103bd38760edb5f9f08008942a496331e9652026d4c.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/tree.json index dce8f8a2d..58cfff58f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-deployFunctionWithVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamssm-deployFunctionWithVpc":{"id":"lamssm-deployFunctionWithVpc","path":"lamssm-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}]]}}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctionServiceRoleDefaultPolicyA31F1897","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdassmstringparameterReplaceDefaultSecurityGroupsecuritygroupBB1CB03C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctioninlinePolicyAddedToExecutionRole0FC2BAAAC","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"stringParameter":{"id":"stringParameter","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/stringParameter","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.223.0","metadata":[{"stringValue":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/stringParameter/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}}}}}}},"Vpc":{"id":"Vpc","path":"lamssm-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamssm-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamssm-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SSM":{"id":"SSM","path":"lamssm-deployFunctionWithVpc/Vpc/SSM","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/SSM/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamssmdeployFunctionWithVpcSSMsecuritygroup40CF2829","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".ssm"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamssm-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamssm-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamssm-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamssm-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamssm-deployFunctionWithVpc-SSM-security-group":{"id":"lamssm-deployFunctionWithVpc-SSM-security-group","path":"lamssm-deployFunctionWithVpc/lamssm-deployFunctionWithVpc-SSM-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/lamssm-deployFunctionWithVpc-SSM-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamssm-deployFunctionWithVpc/lamssm-deployFunctionWithVpc-SSM-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamssm-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamssm-deployFunctionWithVpc":{"id":"lamssm-deployFunctionWithVpc","path":"lamssm-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}]]}}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctionServiceRoleDefaultPolicyA31F1897","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdassmstringparameterReplaceDefaultSecurityGroupsecuritygroupBB1CB03C","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctioninlinePolicyAddedToExecutionRole0FC2BAAAC","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"stringParameter":{"id":"stringParameter","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/stringParameter","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.223.0","metadata":[{"stringValue":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/test-lambda-ssmstringparameter/stringParameter/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}}}}}}},"Vpc":{"id":"Vpc","path":"lamssm-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamssm-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamssm-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamssm-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamssm-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"SSM":{"id":"SSM","path":"lamssm-deployFunctionWithVpc/Vpc/SSM","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/Vpc/SSM/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamssm-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamssmdeployFunctionWithVpcSSMsecuritygroup40CF2829","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".ssm"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamssm-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamssm-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamssm-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamssm-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamssm-deployFunctionWithVpc-SSM-security-group":{"id":"lamssm-deployFunctionWithVpc-SSM-security-group","path":"lamssm-deployFunctionWithVpc/lamssm-deployFunctionWithVpc-SSM-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-deployFunctionWithVpc/lamssm-deployFunctionWithVpc-SSM-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamssm-deployFunctionWithVpc/lamssm-deployFunctionWithVpc-SSM-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamssm-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/integ.json index c45722913..1f5c9832b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamssm-existingFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamssm-existingFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamssmexistingFunctionIntegDefaultTestDeployAssert6A0AA78D" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssm-existingFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssm-existingFunction.assets.json index c1ea661c1..88d7ab899 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssm-existingFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssm-existingFunction.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "ace668064cc023d36a94c3738d3fc3bd4c6bb3cdb1be23cf1fa4fb4cdc0f09ca": { + "b886905e6eefc2fe093e62221180b61fb20bca168328c3ac876aec2e590c8909": { + "displayName": "lamssm-existingFunction Template", "source": { "path": "lamssm-existingFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-6286c07a": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ace668064cc023d36a94c3738d3fc3bd4c6bb3cdb1be23cf1fa4fb4cdc0f09ca.json", + "objectKey": "b886905e6eefc2fe093e62221180b61fb20bca168328c3ac876aec2e590c8909.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssm-existingFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssm-existingFunction.template.json index c91c4a6a9..4a0145b68 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssm-existingFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssm-existingFunction.template.json @@ -135,7 +135,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssmexistingFunctionIntegDefaultTestDeployAssert6A0AA78D.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssmexistingFunctionIntegDefaultTestDeployAssert6A0AA78D.assets.json index 7373d55fb..18fca8080 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssmexistingFunctionIntegDefaultTestDeployAssert6A0AA78D.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/lamssmexistingFunctionIntegDefaultTestDeployAssert6A0AA78D.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamssmexistingFunctionIntegDefaultTestDeployAssert6A0AA78D Template", "source": { "path": "lamssmexistingFunctionIntegDefaultTestDeployAssert6A0AA78D.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/manifest.json index 17f18d08d..59ccb6316 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamssmexistingFunctionIntegDefaultTestDeployAssert6A0AA78D.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ace668064cc023d36a94c3738d3fc3bd4c6bb3cdb1be23cf1fa4fb4cdc0f09ca.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b886905e6eefc2fe093e62221180b61fb20bca168328c3ac876aec2e590c8909.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -293,7 +293,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/tree.json index cad80d065..4cbc4d074 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamssm-existingFunction":{"id":"lamssm-existingFunction","path":"lamssm-existingFunction","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-existingFunction/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-existingFunction/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamssm-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}]]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-existingFunction/LambdaFunction","children":{"Code":{"id":"Code","path":"lamssm-existingFunction/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamssm-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamssm-existingFunction/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamssm-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-existingFunction/test-lambda-ssmstringparameter","children":{"stringParameter":{"id":"stringParameter","path":"lamssm-existingFunction/test-lambda-ssmstringparameter/stringParameter","children":{"Resource":{"id":"Resource","path":"lamssm-existingFunction/test-lambda-ssmstringparameter/stringParameter/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.186.0","metadata":[{"stringValue":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamssm-existingFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-existingFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamssm-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-existingFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamssm-existingFunction":{"id":"lamssm-existingFunction","path":"lamssm-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}]]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamssm-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamssm-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamssm-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"testlambdassmstringparameterstringParameter680CABAC"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-existingFunction/test-lambda-ssmstringparameter","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.95.1"},"children":{"stringParameter":{"id":"stringParameter","path":"lamssm-existingFunction/test-lambda-ssmstringparameter/stringParameter","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.223.0","metadata":[{"stringValue":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamssm-existingFunction/test-lambda-ssmstringparameter/stringParameter/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}}}}}}},"Integ":{"id":"Integ","path":"lamssm-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamssm-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/integ.json index e71ad3cc7..389fbb385 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamssm-existingStringParameter/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamssm-existingStringParameter/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamssmexistingStringParameterIntegDefaultTestDeployAssertAB4779C5" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssm-existingStringParameter.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssm-existingStringParameter.assets.json index 69a8d2c1c..cdf206233 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssm-existingStringParameter.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssm-existingStringParameter.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "test-lambda-ssmstringparameter/LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "314c8832715d9972504f07c383c199c0054176b2669c0d9af9410c309f7bd1f8": { + "d5be4fbc364bd0d329aca49e71ef6c08dda49d92407b9da5378e67022989d096": { + "displayName": "lamssm-existingStringParameter Template", "source": { "path": "lamssm-existingStringParameter.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-3661961b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "314c8832715d9972504f07c383c199c0054176b2669c0d9af9410c309f7bd1f8.json", + "objectKey": "d5be4fbc364bd0d329aca49e71ef6c08dda49d92407b9da5378e67022989d096.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssm-existingStringParameter.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssm-existingStringParameter.template.json index 07af946e8..3f4b204dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssm-existingStringParameter.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssm-existingStringParameter.template.json @@ -142,7 +142,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssmexistingStringParameterIntegDefaultTestDeployAssertAB4779C5.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssmexistingStringParameterIntegDefaultTestDeployAssertAB4779C5.assets.json index aa41d6ae1..4198e8df8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssmexistingStringParameterIntegDefaultTestDeployAssertAB4779C5.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/lamssmexistingStringParameterIntegDefaultTestDeployAssertAB4779C5.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamssmexistingStringParameterIntegDefaultTestDeployAssertAB4779C5 Template", "source": { "path": "lamssmexistingStringParameterIntegDefaultTestDeployAssertAB4779C5.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/manifest.json index afeaf0929..ee385999a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamssmexistingStringParameterIntegDefaultTestDeployAssertAB4779C5.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/314c8832715d9972504f07c383c199c0054176b2669c0d9af9410c309f7bd1f8.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d5be4fbc364bd0d329aca49e71ef6c08dda49d92407b9da5378e67022989d096.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -293,7 +293,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/tree.json index f39b2689c..13ee7b82c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.lamssm-existingStringParameter.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamssm-existingStringParameter":{"id":"lamssm-existingStringParameter","path":"lamssm-existingStringParameter","children":{"myNewStringParameter":{"id":"myNewStringParameter","path":"lamssm-existingStringParameter/myNewStringParameter","children":{"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/myNewStringParameter/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.186.0","metadata":[{"stringValue":"*"}]}},"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"myNewStringParameter97217FB9"}]]}}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctionServiceRoleDefaultPolicyA31F1897","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction","children":{"Code":{"id":"Code","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"myNewStringParameter97217FB9"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctioninlinePolicyAddedToExecutionRole0FC2BAAAC","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamssm-existingStringParameter/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-existingStringParameter/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamssm-existingStringParameter/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-existingStringParameter/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-existingStringParameter/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-existingStringParameter/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-existingStringParameter/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-existingStringParameter/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamssm-existingStringParameter":{"id":"lamssm-existingStringParameter","path":"lamssm-existingStringParameter","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"myNewStringParameter":{"id":"myNewStringParameter","path":"lamssm-existingStringParameter/myNewStringParameter","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.StringParameter","version":"2.223.0","metadata":[{"stringValue":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/myNewStringParameter/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnParameter","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Parameter","aws:cdk:cloudformation:props":{"type":"String","value":"test-string-value"}}}}},"test-lambda-ssmstringparameter":{"id":"test-lambda-ssmstringparameter","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-ssmstringparameter.LambdaToSsmstringparameter","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ssm:DescribeParameters","ssm:GetParameter","ssm:GetParameterHistory","ssm:GetParameters"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/",{"Ref":"myNewStringParameter97217FB9"}]]}}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctionServiceRoleDefaultPolicyA31F1897","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SSM_STRING_PARAMETER_NAME":{"Ref":"myNewStringParameter97217FB9"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamssm-existingStringParameter/test-lambda-ssmstringparameter/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdassmstringparameterLambdaFunctioninlinePolicyAddedToExecutionRole0FC2BAAAC","roles":[{"Ref":"testlambdassmstringparameterLambdaFunctionServiceRole0E6B5916"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamssm-existingStringParameter/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamssm-existingStringParameter/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamssm-existingStringParameter/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamssm-existingStringParameter/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-existingStringParameter/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-existingStringParameter/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamssm-existingStringParameter/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamssm-existingStringParameter/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.adoc index 3519cd546..1213fcc78 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.adoc @@ -52,7 +52,7 @@ const startState = new stepfunctions.Pass(this, 'StartState'); new LambdaToStepfunctions(this, 'LambdaToStepfunctionsPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) }, @@ -106,7 +106,7 @@ final Pass startState = new Pass(this, "StartState"); new LambdaToStepfunctions(this, "test-lambda-stepfunctions-stack", new LambdaToStepfunctionsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -226,6 +226,10 @@ and higher functions) image::aws-lambda-stepfunctions.png["Diagram showing the Lambda function, Step Functions state machine and IAM role created by the construct",scaledwidth=100%] +== Example Lambda Function Implementation + +While Solutions Constructs does not publish code for the Lambda function to work with Step Functions, here are several examples: https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/stepfunctions['examples']. (these examples are in Python, but examples in other languages can also be found at this site) + // github block ''''' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5/index.js new file mode 100644 index 000000000..8d2499730 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5/index.js @@ -0,0 +1,31 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +console.log('Loading function'); + +exports.handler = () => { + const params = { + stateMachineArn: process.env.STATE_MACHINE_ARN, + input: JSON.stringify({}) + }; + const stepFunction = new aws.StepFunctions(); + stepFunction.startExecution(params, function (err, data) { + if (err) { + throw Error('An error occurred executing the step function.'); + } else { + console.log('Step function was successfully executed.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/asset.a386a6d3f95a8dc1f68805928beca967cd96db38f8c095c7cb8805812cc11472/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/asset.a386a6d3f95a8dc1f68805928beca967cd96db38f8c095c7cb8805812cc11472/index.js new file mode 100644 index 000000000..1a432c40d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/asset.a386a6d3f95a8dc1f68805928beca967cd96db38f8c095c7cb8805812cc11472/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async event => { + // Log the event argument for debugging and for use in local development. + console.log(JSON.stringify(event, undefined, 2)); + + return { + statusCode: 200, + headers: { "Content-Type": "text/plain" }, + body: JSON.stringify({ status: "OK", message: "SUCCESS" }), + }; +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/integ.json index 6656c4ac3..9c7b6b5f5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamstp-deploy-lambda/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamstp-deploy-lambda/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamstpdeploylambdaIntegDefaultTestDeployAssert115BE00D" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstp-deploy-lambda.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstp-deploy-lambda.assets.json index 6373fa356..20a06d66a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstp-deploy-lambda.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstp-deploy-lambda.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a386a6d3f95a8dc1f68805928beca967cd96db38f8c095c7cb8805812cc11472": { + "displayName": "taskFunction/Code", "source": { "path": "asset.a386a6d3f95a8dc1f68805928beca967cd96db38f8c095c7cb8805812cc11472", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-ba118584": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a386a6d3f95a8dc1f68805928beca967cd96db38f8c095c7cb8805812cc11472.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" @@ -15,27 +16,29 @@ } }, "013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5": { + "displayName": "test-lambda-stepfunctions-construct/LambdaFunction/Code", "source": { "path": "asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-7664733c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "8d7da9c39ae5a53709e77a4daf36fa625cfca6c293e2e0a4db63a891cbff1eed": { + "ca5be144a2934d3a0fea76bbf02cd7d8ef70f7ff1060e3a7c0c02a808ad5a19d": { + "displayName": "lamstp-deploy-lambda Template", "source": { "path": "lamstp-deploy-lambda.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-ac58713d": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "8d7da9c39ae5a53709e77a4daf36fa625cfca6c293e2e0a4db63a891cbff1eed.json", + "objectKey": "ca5be144a2934d3a0fea76bbf02cd7d8ef70f7ff1060e3a7c0c02a808ad5a19d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstp-deploy-lambda.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstp-deploy-lambda.template.json index f6e00997e..c746d2d3d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstp-deploy-lambda.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstp-deploy-lambda.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -483,7 +483,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstpdeploylambdaIntegDefaultTestDeployAssert115BE00D.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstpdeploylambdaIntegDefaultTestDeployAssert115BE00D.assets.json index 4a9165697..08f75276e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstpdeploylambdaIntegDefaultTestDeployAssert115BE00D.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/lamstpdeploylambdaIntegDefaultTestDeployAssert115BE00D.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamstpdeploylambdaIntegDefaultTestDeployAssert115BE00D Template", "source": { "path": "lamstpdeploylambdaIntegDefaultTestDeployAssert115BE00D.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/manifest.json index 827dca5f5..3ebdb4ed9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamstpdeploylambdaIntegDefaultTestDeployAssert115BE00D.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8d7da9c39ae5a53709e77a4daf36fa625cfca6c293e2e0a4db63a891cbff1eed.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ca5be144a2934d3a0fea76bbf02cd7d8ef70f7ff1060e3a7c0c02a808ad5a19d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -354,7 +354,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -374,7 +375,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -394,7 +396,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -597,15 +600,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "taskFunctionServiceRoleDefaultPolicyDD9784DE": [ - { - "type": "aws:cdk:logicalId", - "data": "taskFunctionServiceRoleDefaultPolicyDD9784DE", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "lamstp-deploy-lambda" @@ -615,7 +609,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/tree.json index 0170e8de1..3383b77e5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deploy-lambda.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamstp-deploy-lambda":{"id":"lamstp-deploy-lambda","path":"lamstp-deploy-lambda","children":{"taskFunctionServiceRole":{"id":"taskFunctionServiceRole","path":"lamstp-deploy-lambda/taskFunctionServiceRole","children":{"ImporttaskFunctionServiceRole":{"id":"ImporttaskFunctionServiceRole","path":"lamstp-deploy-lambda/taskFunctionServiceRole/ImporttaskFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/taskFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"taskFunction":{"id":"taskFunction","path":"lamstp-deploy-lambda/taskFunction","children":{"Code":{"id":"Code","path":"lamstp-deploy-lambda/taskFunction/Code","children":{"Stage":{"id":"Stage","path":"lamstp-deploy-lambda/taskFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-deploy-lambda/taskFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/taskFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a386a6d3f95a8dc1f68805928beca967cd96db38f8c095c7cb8805812cc11472.zip"},"environment":{"variables":{"LAMBDA_NAME":"existing-function","AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["taskFunctionServiceRole31E35058","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-deploy-lambda/taskFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/taskFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"taskFunctioninlinePolicyAddedToExecutionRole0CE3738A0","roles":[{"Ref":"taskFunctionServiceRole31E35058"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","environment":"*"},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"permission-test":{"id":"permission-test","path":"lamstp-deploy-lambda/permission-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.186.0"}},"test-lambda-stepfunctions-construct":{"id":"test-lambda-stepfunctions-construct","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct","children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachineLogGroup","children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachineLogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/lamstp-deploy-lambdatest-lambda-stepfunctions-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]}},"StateMachine":{"id":"StateMachine","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine","children":{"Role":{"id":"Role","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role","children":{"ImportRole":{"id":"ImportRole","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["taskFunctionBFDAC5DE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["taskFunctionBFDAC5DE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructStateMachineRoleDefaultPolicyE8456E47","roles":[{"Ref":"testlambdastepfunctionsconstructStateMachineRoleD2891199"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"permission-test\",\"States\":{\"permission-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["taskFunctionBFDAC5DE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineLogGroup1FD4C0D4","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineRoleD2891199","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.186.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionFailedAlarm","children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionFailedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm","children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm","children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructLambdaFunctionServiceRoleDefaultPolicyB6E73348","roles":[{"Ref":"testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction","children":{"Code":{"id":"Code","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","STATE_MACHINE_ARN":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructLambdaFunctioninlinePolicyAddedToExecutionRole0CAF71EB9","roles":[{"Ref":"testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-stepfunctions.LambdaToStepfunctions","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamstp-deploy-lambda/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamstp-deploy-lambda/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamstp-deploy-lambda/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamstp-deploy-lambda/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-deploy-lambda/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-deploy-lambda/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-deploy-lambda/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-deploy-lambda/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamstp-deploy-lambda":{"id":"lamstp-deploy-lambda","path":"lamstp-deploy-lambda","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"taskFunctionServiceRole":{"id":"taskFunctionServiceRole","path":"lamstp-deploy-lambda/taskFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImporttaskFunctionServiceRole":{"id":"ImporttaskFunctionServiceRole","path":"lamstp-deploy-lambda/taskFunctionServiceRole/ImporttaskFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/taskFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"taskFunction":{"id":"taskFunction","path":"lamstp-deploy-lambda/taskFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","environment":"*"},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"lamstp-deploy-lambda/taskFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamstp-deploy-lambda/taskFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-deploy-lambda/taskFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/taskFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a386a6d3f95a8dc1f68805928beca967cd96db38f8c095c7cb8805812cc11472.zip"},"environment":{"variables":{"LAMBDA_NAME":"existing-function","AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["taskFunctionServiceRole31E35058","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-deploy-lambda/taskFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/taskFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"taskFunctioninlinePolicyAddedToExecutionRole0CE3738A0","roles":[{"Ref":"taskFunctionServiceRole31E35058"}]}}}}}}},"permission-test":{"id":"permission-test","path":"lamstp-deploy-lambda/permission-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-lambda-stepfunctions-construct":{"id":"test-lambda-stepfunctions-construct","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-stepfunctions.LambdaToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/lamstp-deploy-lambdatest-lambda-stepfunctions-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["taskFunctionBFDAC5DE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["taskFunctionBFDAC5DE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructStateMachineRoleDefaultPolicyE8456E47","roles":[{"Ref":"testlambdastepfunctionsconstructStateMachineRoleD2891199"}]}}}}}}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"permission-test\",\"States\":{\"permission-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["taskFunctionBFDAC5DE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineLogGroup1FD4C0D4","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineRoleD2891199","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructLambdaFunctionServiceRoleDefaultPolicyB6E73348","roles":[{"Ref":"testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","STATE_MACHINE_ARN":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deploy-lambda/test-lambda-stepfunctions-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructLambdaFunctioninlinePolicyAddedToExecutionRole0CAF71EB9","roles":[{"Ref":"testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamstp-deploy-lambda/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamstp-deploy-lambda/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamstp-deploy-lambda/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamstp-deploy-lambda/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-deploy-lambda/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-deploy-lambda/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-deploy-lambda/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-deploy-lambda/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/lamstp-deployFunctionWithVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/lamstp-deployFunctionWithVpc.assets.json index 4df4156ce..348cc7980 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/lamstp-deployFunctionWithVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/lamstp-deployFunctionWithVpc.assets.json @@ -29,16 +29,16 @@ } } }, - "7c9bdc1cdbf44c9aef6f1484e817b29ce7560b3ec5d379116dbfac1f560b9286": { + "2ba0dd1ca8fd48da890e973d6c3be1ee186ae4e805c8270a93521201cee70b71": { "displayName": "lamstp-deployFunctionWithVpc Template", "source": { "path": "lamstp-deployFunctionWithVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-574efedc": { + "current_account-current_region-b016f5d5": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7c9bdc1cdbf44c9aef6f1484e817b29ce7560b3ec5d379116dbfac1f560b9286.json", + "objectKey": "2ba0dd1ca8fd48da890e973d6c3be1ee186ae4e805c8270a93521201cee70b71.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/lamstp-deployFunctionWithVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/lamstp-deployFunctionWithVpc.template.json index cf0824631..d4e6454ec 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/lamstp-deployFunctionWithVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/lamstp-deployFunctionWithVpc.template.json @@ -45,7 +45,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdalamstptestServiceRole0A4789FB" @@ -468,7 +468,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/manifest.json index cc93dc01d..e6c5ffe8c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7c9bdc1cdbf44c9aef6f1484e817b29ce7560b3ec5d379116dbfac1f560b9286.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2ba0dd1ca8fd48da890e973d6c3be1ee186ae4e805c8270a93521201cee70b71.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/tree.json index 1ed2c836a..5fdb2db01 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-deployFunctionWithVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamstp-deployFunctionWithVpc":{"id":"lamstp-deployFunctionWithVpc","path":"lamstp-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdalamstp-test":{"id":"lambdalamstp-test","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdalamstptestServiceRole0A4789FB","Arn"]},"runtime":"nodejs20.x"}}}}},"tasklamstp-test":{"id":"tasklamstp-test","path":"lamstp-deployFunctionWithVpc/tasklamstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-lambda-stepfunctions":{"id":"test-lambda-stepfunctions","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-stepfunctions.LambdaToStepfunctions","version":"2.94.0"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/lamstp-deployFunctionWithVpctest-lambda-stepfunctionsStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsStateMachineRoleDefaultPolicyA0E50803","roles":[{"Ref":"testlambdastepfunctionsStateMachineRoleAC728CE7"}]}}}}}}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasklamstp-test\",\"States\":{\"tasklamstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testlambdastepfunctionsStateMachineLogGroupD3F22A89","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testlambdastepfunctionsStateMachineRoleAC728CE7","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsLambdaFunctionServiceRoleDefaultPolicy9746E1BE","roles":[{"Ref":"testlambdastepfunctionsLambdaFunctionServiceRoleA33E2E9C"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","STATE_MACHINE_ARN":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdastepfunctionsLambdaFunctionServiceRoleA33E2E9C","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdastepfunctionsReplaceDefaultSecurityGroupsecuritygroup3E86407A","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsLambdaFunctioninlinePolicyAddedToExecutionRole05414E4FF","roles":[{"Ref":"testlambdastepfunctionsLambdaFunctionServiceRoleA33E2E9C"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamstp-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamstp-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamstp-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"STEP_FUNCTIONS":{"id":"STEP_FUNCTIONS","path":"lamstp-deployFunctionWithVpc/Vpc/STEP_FUNCTIONS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/STEP_FUNCTIONS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamstpdeployFunctionWithVpcSTEPFUNCTIONSsecuritygroupC6950841","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".states"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamstp-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamstp-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamstp-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamstp-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group":{"id":"lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group","path":"lamstp-deployFunctionWithVpc/lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamstp-deployFunctionWithVpc/lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamstp-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamstp-deployFunctionWithVpc":{"id":"lamstp-deployFunctionWithVpc","path":"lamstp-deployFunctionWithVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdalamstp-test":{"id":"lambdalamstp-test","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/lambdalamstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdalamstptestServiceRole0A4789FB","Arn"]},"runtime":"nodejs22.x"}}}}},"tasklamstp-test":{"id":"tasklamstp-test","path":"lamstp-deployFunctionWithVpc/tasklamstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-lambda-stepfunctions":{"id":"test-lambda-stepfunctions","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-stepfunctions.LambdaToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/lamstp-deployFunctionWithVpctest-lambda-stepfunctionsStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsStateMachineRoleDefaultPolicyA0E50803","roles":[{"Ref":"testlambdastepfunctionsStateMachineRoleAC728CE7"}]}}}}}}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasklamstp-test\",\"States\":{\"tasklamstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testlambdastepfunctionsStateMachineLogGroupD3F22A89","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testlambdastepfunctionsStateMachineRoleAC728CE7","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsLambdaFunctionServiceRoleDefaultPolicy9746E1BE","roles":[{"Ref":"testlambdastepfunctionsLambdaFunctionServiceRoleA33E2E9C"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","STATE_MACHINE_ARN":{"Ref":"testlambdastepfunctionsStateMachine807F0A77"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdastepfunctionsLambdaFunctionServiceRoleA33E2E9C","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdastepfunctionsReplaceDefaultSecurityGroupsecuritygroup3E86407A","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/test-lambda-stepfunctions/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsLambdaFunctioninlinePolicyAddedToExecutionRole05414E4FF","roles":[{"Ref":"testlambdastepfunctionsLambdaFunctionServiceRoleA33E2E9C"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamstp-deployFunctionWithVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamstp-deployFunctionWithVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamstp-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamstp-deployFunctionWithVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamstp-deployFunctionWithVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"STEP_FUNCTIONS":{"id":"STEP_FUNCTIONS","path":"lamstp-deployFunctionWithVpc/Vpc/STEP_FUNCTIONS","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/Vpc/STEP_FUNCTIONS/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamstp-deployFunctionWithVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamstpdeployFunctionWithVpcSTEPFUNCTIONSsecuritygroupC6950841","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".states"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamstp-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamstp-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamstp-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamstp-deployFunctionWithVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group":{"id":"lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group","path":"lamstp-deployFunctionWithVpc/lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-deployFunctionWithVpc/lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamstp-deployFunctionWithVpc/lamstp-deployFunctionWithVpc-STEP_FUNCTIONS-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Integ":{"id":"Integ","path":"lamstp-deployFunctionWithVpc/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-deployFunctionWithVpc/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-deployFunctionWithVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-deployFunctionWithVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5/index.js new file mode 100644 index 000000000..8d2499730 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5/index.js @@ -0,0 +1,31 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +console.log('Loading function'); + +exports.handler = () => { + const params = { + stateMachineArn: process.env.STATE_MACHINE_ARN, + input: JSON.stringify({}) + }; + const stepFunction = new aws.StepFunctions(); + stepFunction.startExecution(params, function (err, data) { + if (err) { + throw Error('An error occurred executing the step function.'); + } else { + console.log('Step function was successfully executed.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/integ.json index c1fc1dbf1..648fff96a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamstp-existing-function/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamstp-existing-function/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamstpexistingfunctionIntegDefaultTestDeployAssert68ED3FE4" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstp-existing-function.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstp-existing-function.assets.json index c9f1748e6..bfbe8fa45 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstp-existing-function.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstp-existing-function.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5": { + "displayName": "LambdaFunction/Code", "source": { "path": "asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-7664733c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "2c6bae3d5619ad19716426218595717dad8030bd853fbcd20353f30c8580c012": { + "701a07105f245452018ec2bc59aeac7bbc6f1383f97366c65f6a358c176f1de5": { + "displayName": "lamstp-existing-function Template", "source": { "path": "lamstp-existing-function.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-ced884b1": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "2c6bae3d5619ad19716426218595717dad8030bd853fbcd20353f30c8580c012.json", + "objectKey": "701a07105f245452018ec2bc59aeac7bbc6f1383f97366c65f6a358c176f1de5.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstp-existing-function.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstp-existing-function.template.json index 755f1eac2..3beee235d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstp-existing-function.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstp-existing-function.template.json @@ -109,7 +109,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -217,7 +217,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdalamstptestServiceRole0A4789FB" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstpexistingfunctionIntegDefaultTestDeployAssert68ED3FE4.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstpexistingfunctionIntegDefaultTestDeployAssert68ED3FE4.assets.json index 5d1971f02..97c37bc7e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstpexistingfunctionIntegDefaultTestDeployAssert68ED3FE4.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/lamstpexistingfunctionIntegDefaultTestDeployAssert68ED3FE4.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamstpexistingfunctionIntegDefaultTestDeployAssert68ED3FE4 Template", "source": { "path": "lamstpexistingfunctionIntegDefaultTestDeployAssert68ED3FE4.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/manifest.json index 04f5d4ecb..3a0cadd6f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamstpexistingfunctionIntegDefaultTestDeployAssert68ED3FE4.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2c6bae3d5619ad19716426218595717dad8030bd853fbcd20353f30c8580c012.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/701a07105f245452018ec2bc59aeac7bbc6f1383f97366c65f6a358c176f1de5.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -457,7 +457,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -477,7 +478,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -497,7 +499,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -532,7 +535,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/tree.json index b904458db..70e2c65cd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-existing-function.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamstp-existing-function":{"id":"lamstp-existing-function","path":"lamstp-existing-function","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamstp-existing-function/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamstp-existing-function/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-existing-function/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-existing-function/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamstp-existing-function/LambdaFunction","children":{"Code":{"id":"Code","path":"lamstp-existing-function/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamstp-existing-function/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-existing-function/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamstp-existing-function/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","STATE_MACHINE_ARN":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-existing-function/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}},"lambdalamstp-test":{"id":"lambdalamstp-test","path":"lamstp-existing-function/lambdalamstp-test","children":{"ServiceRole":{"id":"ServiceRole","path":"lamstp-existing-function/lambdalamstp-test/ServiceRole","children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lamstp-existing-function/lambdalamstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-existing-function/lambdalamstp-test/ServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]}},"Resource":{"id":"Resource","path":"lamstp-existing-function/lambdalamstp-test/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdalamstptestServiceRole0A4789FB","Arn"]},"runtime":"nodejs20.x"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]}},"tasklamstp-test":{"id":"tasklamstp-test","path":"lamstp-existing-function/tasklamstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.186.0"}},"test-lambda-stepfunctions-construct":{"id":"test-lambda-stepfunctions-construct","path":"lamstp-existing-function/test-lambda-stepfunctions-construct","children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachineLogGroup","children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachineLogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/lamstp-existing-functiontest-lambda-stepfunctions-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]}},"StateMachine":{"id":"StateMachine","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine","children":{"Role":{"id":"Role","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role","children":{"ImportRole":{"id":"ImportRole","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructStateMachineRoleDefaultPolicyE8456E47","roles":[{"Ref":"testlambdastepfunctionsconstructStateMachineRoleD2891199"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasklamstp-test\",\"States\":{\"tasklamstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineLogGroup1FD4C0D4","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineRoleD2891199","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.186.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionFailedAlarm","children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionFailedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm","children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm","children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-stepfunctions.LambdaToStepfunctions","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamstp-existing-function/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamstp-existing-function/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamstp-existing-function/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamstp-existing-function/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-existing-function/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-existing-function/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-existing-function/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-existing-function/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamstp-existing-function":{"id":"lamstp-existing-function","path":"lamstp-existing-function","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamstp-existing-function/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamstp-existing-function/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-existing-function/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-existing-function/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamstp-existing-function/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamstp-existing-function/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamstp-existing-function/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-existing-function/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamstp-existing-function/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","STATE_MACHINE_ARN":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-existing-function/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"lambdalamstp-test":{"id":"lambdalamstp-test","path":"lamstp-existing-function/lambdalamstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lamstp-existing-function/lambdalamstp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lamstp-existing-function/lambdalamstp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-existing-function/lambdalamstp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"lamstp-existing-function/lambdalamstp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdalamstptestServiceRole0A4789FB","Arn"]},"runtime":"nodejs22.x"}}}}},"tasklamstp-test":{"id":"tasklamstp-test","path":"lamstp-existing-function/tasklamstp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-lambda-stepfunctions-construct":{"id":"test-lambda-stepfunctions-construct","path":"lamstp-existing-function/test-lambda-stepfunctions-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-stepfunctions.LambdaToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/lamstp-existing-functiontest-lambda-stepfunctions-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructStateMachineRoleDefaultPolicyE8456E47","roles":[{"Ref":"testlambdastepfunctionsconstructStateMachineRoleD2891199"}]}}}}}}},"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasklamstp-test\",\"States\":{\"tasklamstp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdalamstptestA7F4D461","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineLogGroup1FD4C0D4","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineRoleD2891199","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-existing-function/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}}}},"Integ":{"id":"Integ","path":"lamstp-existing-function/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamstp-existing-function/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamstp-existing-function/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamstp-existing-function/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-existing-function/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-existing-function/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-existing-function/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-existing-function/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5/index.js b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5/index.js new file mode 100644 index 000000000..8d2499730 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5/index.js @@ -0,0 +1,31 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const aws = require('aws-sdk'); + +console.log('Loading function'); + +exports.handler = () => { + const params = { + stateMachineArn: process.env.STATE_MACHINE_ARN, + input: JSON.stringify({}) + }; + const stepFunction = new aws.StepFunctions(); + stepFunction.startExecution(params, function (err, data) { + if (err) { + throw Error('An error occurred executing the step function.'); + } else { + console.log('Step function was successfully executed.'); + } + }) +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/integ.json index 38f0fdc4d..ccd9b8816 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "lamstp-state-machine-defintion/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "lamstp-state-machine-defintion/Integ/DefaultTest/DeployAssert", "assertionStackName": "lamstpstatemachinedefintionIntegDefaultTestDeployAssert926FFCBD" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstp-state-machine-defintion.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstp-state-machine-defintion.assets.json index d59000296..20b08bc03 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstp-state-machine-defintion.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstp-state-machine-defintion.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5": { + "displayName": "test-lambda-stepfunctions-construct/LambdaFunction/Code", "source": { "path": "asset.013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-7664733c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "9df70a435bfed36ed2cc5ac555fa154cf43cf3eb79f7590fb85373060dd4c259": { + "b71195152d7d315f147daec5ec26547b0e667b254f4f7dc485e9f6621ad40729": { + "displayName": "lamstp-state-machine-defintion Template", "source": { "path": "lamstp-state-machine-defintion.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-bdad3048": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "9df70a435bfed36ed2cc5ac555fa154cf43cf3eb79f7590fb85373060dd4c259.json", + "objectKey": "b71195152d7d315f147daec5ec26547b0e667b254f4f7dc485e9f6621ad40729.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstp-state-machine-defintion.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstp-state-machine-defintion.template.json index 37aa024aa..dbb2f0101 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstp-state-machine-defintion.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstp-state-machine-defintion.template.json @@ -80,7 +80,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -211,7 +211,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -641,7 +641,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstpstatemachinedefintionIntegDefaultTestDeployAssert926FFCBD.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstpstatemachinedefintionIntegDefaultTestDeployAssert926FFCBD.assets.json index d763f9a16..7143d881f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstpstatemachinedefintionIntegDefaultTestDeployAssert926FFCBD.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/lamstpstatemachinedefintionIntegDefaultTestDeployAssert926FFCBD.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "lamstpstatemachinedefintionIntegDefaultTestDeployAssert926FFCBD Template", "source": { "path": "lamstpstatemachinedefintionIntegDefaultTestDeployAssert926FFCBD.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/manifest.json index 853e17c6b..a28f717a8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "lamstpstatemachinedefintionIntegDefaultTestDeployAssert926FFCBD.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9df70a435bfed36ed2cc5ac555fa154cf43cf3eb79f7590fb85373060dd4c259.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b71195152d7d315f147daec5ec26547b0e667b254f4f7dc485e9f6621ad40729.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -476,7 +476,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -496,7 +497,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -516,7 +518,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -719,24 +722,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "firstfunctionServiceRoleDefaultPolicy05FFD222": [ - { - "type": "aws:cdk:logicalId", - "data": "firstfunctionServiceRoleDefaultPolicy05FFD222", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } - ], - "secondfunctionServiceRoleDefaultPolicy02F27461": [ - { - "type": "aws:cdk:logicalId", - "data": "secondfunctionServiceRoleDefaultPolicy02F27461", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "lamstp-state-machine-defintion" @@ -746,7 +731,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/tree.json index 710d7687c..27cf9892b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.lamstp-state-machine-defintion.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"lamstp-state-machine-defintion":{"id":"lamstp-state-machine-defintion","path":"lamstp-state-machine-defintion","children":{"first-functionServiceRole":{"id":"first-functionServiceRole","path":"lamstp-state-machine-defintion/first-functionServiceRole","children":{"Importfirst-functionServiceRole":{"id":"Importfirst-functionServiceRole","path":"lamstp-state-machine-defintion/first-functionServiceRole/Importfirst-functionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/first-functionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"first-function":{"id":"first-function","path":"lamstp-state-machine-defintion/first-function","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/first-function/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => { console.log(\"First Function\");}"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["firstfunctionServiceRole0FF7D94B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-state-machine-defintion/first-function/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/first-function/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"firstfunctioninlinePolicyAddedToExecutionRole0E3CD5BD8","roles":[{"Ref":"firstfunctionServiceRole0FF7D94B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"task-one":{"id":"task-one","path":"lamstp-state-machine-defintion/task-one","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.186.0"}},"second-functionServiceRole":{"id":"second-functionServiceRole","path":"lamstp-state-machine-defintion/second-functionServiceRole","children":{"Importsecond-functionServiceRole":{"id":"Importsecond-functionServiceRole","path":"lamstp-state-machine-defintion/second-functionServiceRole/Importsecond-functionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/second-functionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"second-function":{"id":"second-function","path":"lamstp-state-machine-defintion/second-function","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/second-function/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => { console.log(\"Second Function\");}"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["secondfunctionServiceRole5264DF4C","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-state-machine-defintion/second-function/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/second-function/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"secondfunctioninlinePolicyAddedToExecutionRole0F6A2FD44","roles":[{"Ref":"secondfunctionServiceRole5264DF4C"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"task-two":{"id":"task-two","path":"lamstp-state-machine-defintion/task-two","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.186.0"}},"test-lambda-stepfunctions-construct":{"id":"test-lambda-stepfunctions-construct","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct","children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachineLogGroup","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachineLogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/lamstp-state-machine-defintiontest-lambda-stepfunctions-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.186.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]}},"StateMachine":{"id":"StateMachine","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine","children":{"Role":{"id":"Role","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role","children":{"ImportRole":{"id":"ImportRole","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["firstfunction297AC5AB","Arn"]},{"Fn::GetAtt":["secondfunctionB2F1D4DD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["firstfunction297AC5AB","Arn"]},":*"]]},{"Fn::Join":["",[{"Fn::GetAtt":["secondfunctionB2F1D4DD","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructStateMachineRoleDefaultPolicyE8456E47","roles":[{"Ref":"testlambdastepfunctionsconstructStateMachineRoleD2891199"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"task-one\",\"States\":{\"task-one\":{\"Next\":\"task-two\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["firstfunction297AC5AB","Arn"]},"\",\"Payload.$\":\"$\"}},\"task-two\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["secondfunctionB2F1D4DD","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineLogGroup1FD4C0D4","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineRoleD2891199","Arn"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.186.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionFailedAlarm","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionFailedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.186.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructLambdaFunctionServiceRoleDefaultPolicyB6E73348","roles":[{"Ref":"testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction","children":{"Code":{"id":"Code","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","STATE_MACHINE_ARN":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructLambdaFunctioninlinePolicyAddedToExecutionRole0CAF71EB9","roles":[{"Ref":"testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-stepfunctions.LambdaToStepfunctions","version":"2.80.0"}},"Integ":{"id":"Integ","path":"lamstp-state-machine-defintion/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"lamstp-state-machine-defintion/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"lamstp-state-machine-defintion/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamstp-state-machine-defintion/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-state-machine-defintion/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-state-machine-defintion/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-state-machine-defintion/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-state-machine-defintion/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamstp-state-machine-defintion":{"id":"lamstp-state-machine-defintion","path":"lamstp-state-machine-defintion","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"first-functionServiceRole":{"id":"first-functionServiceRole","path":"lamstp-state-machine-defintion/first-functionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"Importfirst-functionServiceRole":{"id":"Importfirst-functionServiceRole","path":"lamstp-state-machine-defintion/first-functionServiceRole/Importfirst-functionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/first-functionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"first-function":{"id":"first-function","path":"lamstp-state-machine-defintion/first-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/first-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => { console.log(\"First Function\");}"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["firstfunctionServiceRole0FF7D94B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-state-machine-defintion/first-function/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/first-function/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"firstfunctioninlinePolicyAddedToExecutionRole0E3CD5BD8","roles":[{"Ref":"firstfunctionServiceRole0FF7D94B"}]}}}}}}},"task-one":{"id":"task-one","path":"lamstp-state-machine-defintion/task-one","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"second-functionServiceRole":{"id":"second-functionServiceRole","path":"lamstp-state-machine-defintion/second-functionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"Importsecond-functionServiceRole":{"id":"Importsecond-functionServiceRole","path":"lamstp-state-machine-defintion/second-functionServiceRole/Importsecond-functionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/second-functionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"second-function":{"id":"second-function","path":"lamstp-state-machine-defintion/second-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/second-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => { console.log(\"Second Function\");}"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["secondfunctionServiceRole5264DF4C","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-state-machine-defintion/second-function/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/second-function/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"secondfunctioninlinePolicyAddedToExecutionRole0F6A2FD44","roles":[{"Ref":"secondfunctionServiceRole5264DF4C"}]}}}}}}},"task-two":{"id":"task-two","path":"lamstp-state-machine-defintion/task-two","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-lambda-stepfunctions-construct":{"id":"test-lambda-stepfunctions-construct","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-stepfunctions.LambdaToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/lamstp-state-machine-defintiontest-lambda-stepfunctions-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["firstfunction297AC5AB","Arn"]},{"Fn::GetAtt":["secondfunctionB2F1D4DD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["firstfunction297AC5AB","Arn"]},":*"]]},{"Fn::Join":["",[{"Fn::GetAtt":["secondfunctionB2F1D4DD","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructStateMachineRoleDefaultPolicyE8456E47","roles":[{"Ref":"testlambdastepfunctionsconstructStateMachineRoleD2891199"}]}}}}}}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"task-one\",\"States\":{\"task-one\":{\"Next\":\"task-two\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["firstfunction297AC5AB","Arn"]},"\",\"Payload.$\":\"$\"}},\"task-two\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["secondfunctionB2F1D4DD","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineLogGroup1FD4C0D4","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testlambdastepfunctionsconstructStateMachineRoleD2891199","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructLambdaFunctionServiceRoleDefaultPolicyB6E73348","roles":[{"Ref":"testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]}]},"children":{"Code":{"id":"Code","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"013657bdb16018cbdc3923aad71a2273f9175e48c3a74e732d41248f0028fbc5.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","STATE_MACHINE_ARN":{"Ref":"testlambdastepfunctionsconstructStateMachineE1526513"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamstp-state-machine-defintion/test-lambda-stepfunctions-construct/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdastepfunctionsconstructLambdaFunctioninlinePolicyAddedToExecutionRole0CAF71EB9","roles":[{"Ref":"testlambdastepfunctionsconstructLambdaFunctionServiceRole2D3C3FD0"}]}}}}}}}}},"Integ":{"id":"Integ","path":"lamstp-state-machine-defintion/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lamstp-state-machine-defintion/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lamstp-state-machine-defintion/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lamstp-state-machine-defintion/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-state-machine-defintion/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-state-machine-defintion/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamstp-state-machine-defintion/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamstp-state-machine-defintion/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts index 4abf9142e..039990622 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts @@ -206,7 +206,7 @@ test('Test lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs20.x', + Runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_STRING, Environment: { Variables: { CUSTOM_STATE_MAHINCE: { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/README.adoc index 1568e040b..e51598acf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/README.adoc @@ -51,7 +51,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToTranscribe(this, 'LambdaToTranscribePattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -92,7 +92,7 @@ import software.amazon.awsconstructs.services.lambdatranscribe.*; new LambdaToTranscribe(this, "LambdaToTranscribePattern", new LambdaToTranscribeProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -277,7 +277,7 @@ image::aws-lambda-transcribe.png["Diagram showing the Lambda function, source an == Example Lambda Function Implementation -While Solutions Constructs does not publish code for the Lambda function to call Transcribe, there is an example of calling Transcribe https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_create_job.js['here']. +While Solutions Constructs does not publish code for the Lambda function to call Transcribe, here is an example of calling Transcribe: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_create_job.js['example']. (this example is in JavaScript, but examples in other languages can also be found at this site) // github block diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/README.md index a6a1bb26b..4ae78590e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/README.md @@ -33,7 +33,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToTranscribe(this, 'LambdaToTranscribePattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -70,7 +70,7 @@ import software.amazon.awsconstructs.services.lambdatranscribe.*; new LambdaToTranscribe(this, "LambdaToTranscribePattern", new LambdaToTranscribeProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/lamtsb-deployVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/lamtsb-deployVpc.assets.json index 7762f74e0..4976be0a6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/lamtsb-deployVpc.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/lamtsb-deployVpc.assets.json @@ -15,16 +15,16 @@ } } }, - "fc3a9766473a78a34fe966dd088a0e779bd7c37cc74de6791fb16af65ad6d8d0": { + "49691dea457f4ccb82239f15f145197315f8806ddeddea671d9e66e546550e33": { "displayName": "lamtsb-deployVpc Template", "source": { "path": "lamtsb-deployVpc.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-6c429278": { + "current_account-current_region-2da7d0a6": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "fc3a9766473a78a34fe966dd088a0e779bd7c37cc74de6791fb16af65ad6d8d0.json", + "objectKey": "49691dea457f4ccb82239f15f145197315f8806ddeddea671d9e66e546550e33.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/lamtsb-deployVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/lamtsb-deployVpc.template.json index 1ab1e381e..8ec671e90 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/lamtsb-deployVpc.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/lamtsb-deployVpc.template.json @@ -218,7 +218,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/manifest.json index e09c2b569..d139ba5bb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/manifest.json @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/fc3a9766473a78a34fe966dd088a0e779bd7c37cc74de6791fb16af65ad6d8d0.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/49691dea457f4ccb82239f15f145197315f8806ddeddea671d9e66e546550e33.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/tree.json index a707a7706..26388f852 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtsb-deployVpc":{"id":"lamtsb-deployVpc","path":"lamtsb-deployVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-transcribe-vpc":{"id":"test-lambda-transcribe-vpc","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-transcribe.LambdaToTranscribe","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]},"/*"]]}]},{"Action":["s3:Abort*","s3:DeleteObject*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdatranscribevpcLambdaFunctionServiceRoleDefaultPolicy57785FDA","roles":[{"Ref":"testlambdatranscribevpcLambdaFunctionServiceRole8DA30E9A"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamtsb-deployVpc/test-lambda-transcribe-vpc/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"\n exports.handler = async (event) => {\n console.log('Lambda function executed in VPC');\n return { statusCode: 200, body: 'Hello from Lambda in VPC!' };\n };\n "},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SOURCE_BUCKET_NAME":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58"},"DESTINATION_BUCKET_NAME":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranscribevpcLambdaFunctionServiceRole8DA30E9A","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdatranscribevpcReplaceDefaultSecurityGroupsecuritygroup392E16B9","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribevpcLambdaFunctioninlinePolicyAddedToExecutionRole0CD559ABB","roles":[{"Ref":"testlambdatranscribevpcLambdaFunctionServiceRole8DA30E9A"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["transcribe:GetTranscriptionJob","transcribe:ListTranscriptionJobs","transcribe:StartTranscriptionJob"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribevpcLambdaFunctioninlinePolicyAddedToExecutionRole16A285442","roles":[{"Ref":"testlambdatranscribevpcLambdaFunctionServiceRole8DA30E9A"}]}}}}}}},"test-lambda-transcribe-vpc-source-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-vpc-source-bucketS3LoggingBucket","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-vpc-source-bucketS3Bucket":{"id":"test-lambda-transcribe-vpc-source-bucketS3Bucket","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-vpc-destination-bucketS3Bucket":{"id":"test-lambda-transcribe-vpc-destination-bucketS3Bucket","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamtsb-deployVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamtsb-deployVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamtsb-deployVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamtsb-deployVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamtsb-deployVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamtsb-deployVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamtsb-deployVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamtsb-deployVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"TRANSCRIBE":{"id":"TRANSCRIBE","path":"lamtsb-deployVpc/Vpc/TRANSCRIBE","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/TRANSCRIBE/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamtsbdeployVpcTRANSCRIBEsecuritygroup28EB241A","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".transcribe"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"lamtsb-deployVpc/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc"}],"routeTableIds":[{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},{"Ref":"VpcisolatedSubnet2RouteTable334F9764"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamtsb-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamtsb-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamtsb-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamtsb-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamtsb-deployVpc-TRANSCRIBE-security-group":{"id":"lamtsb-deployVpc-TRANSCRIBE-security-group","path":"lamtsb-deployVpc/lamtsb-deployVpc-TRANSCRIBE-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/lamtsb-deployVpc-TRANSCRIBE-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamtsb-deployVpc/lamtsb-deployVpc-TRANSCRIBE-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtsb-deployVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtsb-deployVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtsb-deployVpc":{"id":"lamtsb-deployVpc","path":"lamtsb-deployVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-transcribe-vpc":{"id":"test-lambda-transcribe-vpc","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-transcribe.LambdaToTranscribe","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]},"/*"]]}]},{"Action":["s3:Abort*","s3:DeleteObject*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdatranscribevpcLambdaFunctionServiceRoleDefaultPolicy57785FDA","roles":[{"Ref":"testlambdatranscribevpcLambdaFunctionServiceRole8DA30E9A"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamtsb-deployVpc/test-lambda-transcribe-vpc/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"\n exports.handler = async (event) => {\n console.log('Lambda function executed in VPC');\n return { statusCode: 200, body: 'Hello from Lambda in VPC!' };\n };\n "},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SOURCE_BUCKET_NAME":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58"},"DESTINATION_BUCKET_NAME":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranscribevpcLambdaFunctionServiceRole8DA30E9A","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdatranscribevpcReplaceDefaultSecurityGroupsecuritygroup392E16B9","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribevpcLambdaFunctioninlinePolicyAddedToExecutionRole0CD559ABB","roles":[{"Ref":"testlambdatranscribevpcLambdaFunctionServiceRole8DA30E9A"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["transcribe:GetTranscriptionJob","transcribe:ListTranscriptionJobs","transcribe:StartTranscriptionJob"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribevpcLambdaFunctioninlinePolicyAddedToExecutionRole16A285442","roles":[{"Ref":"testlambdatranscribevpcLambdaFunctionServiceRole8DA30E9A"}]}}}}}}},"test-lambda-transcribe-vpc-source-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-vpc-source-bucketS3LoggingBucket","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-vpc-source-bucketS3Bucket":{"id":"test-lambda-transcribe-vpc-source-bucketS3Bucket","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3LoggingBucket3CCF4AB6"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-source-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcsourcebucketS3Bucket5A774E58","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-vpc-destination-bucketS3Bucket":{"id":"test-lambda-transcribe-vpc-destination-bucketS3Bucket","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3LoggingBucketC5CD844C"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/test-lambda-transcribe-vpc/test-lambda-transcribe-vpc-destination-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribevpctestlambdatranscribevpcdestinationbucketS3Bucket2A8E60BA","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamtsb-deployVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamtsb-deployVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtsb-deployVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamtsb-deployVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtsb-deployVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamtsb-deployVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamtsb-deployVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamtsb-deployVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamtsb-deployVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamtsb-deployVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"TRANSCRIBE":{"id":"TRANSCRIBE","path":"lamtsb-deployVpc/Vpc/TRANSCRIBE","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/TRANSCRIBE/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamtsbdeployVpcTRANSCRIBEsecuritygroup28EB241A","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".transcribe"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}},"S3":{"id":"S3","path":"lamtsb-deployVpc/Vpc/S3","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*"}}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/Vpc/S3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtsb-deployVpc/Vpc"}],"routeTableIds":[{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},{"Ref":"VpcisolatedSubnet2RouteTable334F9764"}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".s3"]]},"vpcEndpointType":"Gateway","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamtsb-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamtsb-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamtsb-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamtsb-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamtsb-deployVpc-TRANSCRIBE-security-group":{"id":"lamtsb-deployVpc-TRANSCRIBE-security-group","path":"lamtsb-deployVpc/lamtsb-deployVpc-TRANSCRIBE-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-deployVpc/lamtsb-deployVpc-TRANSCRIBE-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamtsb-deployVpc/lamtsb-deployVpc-TRANSCRIBE-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtsb-deployVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtsb-deployVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.ts index de6550f4f..47c4c15d9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-deployVpc.ts @@ -28,7 +28,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-transcribe // Definitions new LambdaToTranscribe(stack, 'test-lambda-transcribe-vpc', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', code: lambda.Code.fromInline(` exports.handler = async (event) => { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/lamtsb-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/lamtsb-no-arguments.assets.json index 5b6525821..9192575b9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/lamtsb-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/lamtsb-no-arguments.assets.json @@ -1,16 +1,16 @@ { "version": "48.0.0", "files": { - "cb7a64fe7b11aead16ed5fc99bb8a95dd559a63f852de976b8cd661448ef2796": { + "c8e3f6469d480afd12cb094623963d87f34bf27c9e711916702bee605068b431": { "displayName": "lamtsb-no-arguments Template", "source": { "path": "lamtsb-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-f79540ea": { + "current_account-current_region-2c4e2a5d": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "cb7a64fe7b11aead16ed5fc99bb8a95dd559a63f852de976b8cd661448ef2796.json", + "objectKey": "c8e3f6469d480afd12cb094623963d87f34bf27c9e711916702bee605068b431.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/lamtsb-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/lamtsb-no-arguments.template.json index 146d5cef4..024601459 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/lamtsb-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/lamtsb-no-arguments.template.json @@ -167,7 +167,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/manifest.json index ac55506c3..d54dd8164 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/manifest.json @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/cb7a64fe7b11aead16ed5fc99bb8a95dd559a63f852de976b8cd661448ef2796.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c8e3f6469d480afd12cb094623963d87f34bf27c9e711916702bee605068b431.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -674,7 +674,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1013,6 +1013,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/tree.json index 8703d4197..ab7f3a79d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.220.0"},"children":{"lamtsb-no-arguments":{"id":"lamtsb-no-arguments","path":"lamtsb-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.220.0"},"children":{"test-lambda-transcribe-stack":{"id":"test-lambda-transcribe-stack","path":"lamtsb-no-arguments/test-lambda-transcribe-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-transcribe.LambdaToTranscribe","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.220.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.220.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.220.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]},"/*"]]}]},{"Action":["s3:Abort*","s3:DeleteObject*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdatranscribestackLambdaFunctionServiceRoleDefaultPolicyF6625BF8","roles":[{"Ref":"testlambdatranscribestackLambdaFunctionServiceRole92B59034"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.220.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"\n exports.handler = async (event) => {\n console.log('Lambda function executed');\n return { statusCode: 200, body: 'Hello from Lambda!' };\n };\n "},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SOURCE_BUCKET_NAME":{"Ref":"testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D"},"DESTINATION_BUCKET_NAME":{"Ref":"testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranscribestackLambdaFunctionServiceRole92B59034","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.220.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribestackLambdaFunctioninlinePolicyAddedToExecutionRole0DDCEA2B2","roles":[{"Ref":"testlambdatranscribestackLambdaFunctionServiceRole92B59034"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.220.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["transcribe:GetTranscriptionJob","transcribe:ListTranscriptionJobs","transcribe:StartTranscriptionJob"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribestackLambdaFunctioninlinePolicyAddedToExecutionRole111091D51","roles":[{"Ref":"testlambdatranscribestackLambdaFunctionServiceRole92B59034"}]}}}}}}},"test-lambda-transcribe-stack-source-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-stack-source-bucketS3LoggingBucket","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.220.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.220.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-stack-source-bucketS3Bucket":{"id":"test-lambda-transcribe-stack-source-bucketS3Bucket","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.220.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.220.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-stack-destination-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-stack-destination-bucketS3LoggingBucket","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.220.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.220.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-stack-destination-bucketS3Bucket":{"id":"test-lambda-transcribe-stack-destination-bucketS3Bucket","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.220.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.220.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtsb-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.220.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtsb-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.220.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.220.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.220.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.220.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.220.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.220.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtsb-no-arguments":{"id":"lamtsb-no-arguments","path":"lamtsb-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-transcribe-stack":{"id":"test-lambda-transcribe-stack","path":"lamtsb-no-arguments/test-lambda-transcribe-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-transcribe.LambdaToTranscribe","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]},"/*"]]}]},{"Action":["s3:Abort*","s3:DeleteObject*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdatranscribestackLambdaFunctionServiceRoleDefaultPolicyF6625BF8","roles":[{"Ref":"testlambdatranscribestackLambdaFunctionServiceRole92B59034"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"\n exports.handler = async (event) => {\n console.log('Lambda function executed');\n return { statusCode: 200, body: 'Hello from Lambda!' };\n };\n "},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SOURCE_BUCKET_NAME":{"Ref":"testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D"},"DESTINATION_BUCKET_NAME":{"Ref":"testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranscribestackLambdaFunctionServiceRole92B59034","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribestackLambdaFunctioninlinePolicyAddedToExecutionRole0DDCEA2B2","roles":[{"Ref":"testlambdatranscribestackLambdaFunctionServiceRole92B59034"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["transcribe:GetTranscriptionJob","transcribe:ListTranscriptionJobs","transcribe:StartTranscriptionJob"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribestackLambdaFunctioninlinePolicyAddedToExecutionRole111091D51","roles":[{"Ref":"testlambdatranscribestackLambdaFunctionServiceRole92B59034"}]}}}}}}},"test-lambda-transcribe-stack-source-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-stack-source-bucketS3LoggingBucket","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-stack-source-bucketS3Bucket":{"id":"test-lambda-transcribe-stack-source-bucketS3Bucket","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribestacktestlambdatranscribestacksourcebucketS3LoggingBucket0BB39869"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-source-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestacksourcebucketS3Bucket48779B6D","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-stack-destination-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-stack-destination-bucketS3LoggingBucket","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-stack-destination-bucketS3Bucket":{"id":"test-lambda-transcribe-stack-destination-bucketS3Bucket","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3LoggingBucket649C2BBA"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-no-arguments/test-lambda-transcribe-stack/test-lambda-transcribe-stack-destination-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribestacktestlambdatranscribestackdestinationbucketS3Bucket42A9AD73","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtsb-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtsb-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.ts index fa22ba9a9..44d19a154 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-no-arguments.ts @@ -28,7 +28,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-transcribe' // Definitions new LambdaToTranscribe(stack, 'test-lambda-transcribe-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', code: lambda.Code.fromInline(` exports.handler = async (event) => { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/lamtsb-same-bucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/lamtsb-same-bucket.assets.json index 2114b336d..1a1457792 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/lamtsb-same-bucket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/lamtsb-same-bucket.assets.json @@ -1,16 +1,16 @@ { "version": "48.0.0", "files": { - "3c4d2d19b93f5a82995bd8254cff636b5b08beac6a4c6544a8b17b8e6b6aca17": { + "68aea508e69244f2230482efad62d9517224800067132dd3ebc2093d58253e34": { "displayName": "lamtsb-same-bucket Template", "source": { "path": "lamtsb-same-bucket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-c95a62b1": { + "current_account-current_region-d4eae7b3": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3c4d2d19b93f5a82995bd8254cff636b5b08beac6a4c6544a8b17b8e6b6aca17.json", + "objectKey": "68aea508e69244f2230482efad62d9517224800067132dd3ebc2093d58253e34.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/lamtsb-same-bucket.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/lamtsb-same-bucket.template.json index 491c72c5b..b35340034 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/lamtsb-same-bucket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/lamtsb-same-bucket.template.json @@ -140,7 +140,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/manifest.json index 7d6594703..f17479fac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/manifest.json @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3c4d2d19b93f5a82995bd8254cff636b5b08beac6a4c6544a8b17b8e6b6aca17.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/68aea508e69244f2230482efad62d9517224800067132dd3ebc2093d58253e34.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -584,7 +584,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -923,6 +923,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/tree.json index 08f812c3a..23a6cf1a9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.220.0"},"children":{"lamtsb-same-bucket":{"id":"lamtsb-same-bucket","path":"lamtsb-same-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.220.0"},"children":{"test-lambda-transcribe-same-bucket":{"id":"test-lambda-transcribe-same-bucket","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-transcribe.LambdaToTranscribe","version":"2.94.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.220.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.220.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.220.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdatranscribesamebucketLambdaFunctionServiceRoleDefaultPolicyEF00E05B","roles":[{"Ref":"testlambdatranscribesamebucketLambdaFunctionServiceRole8F83E6A5"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.220.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"\n exports.handler = async (event) => {\n console.log('Lambda function executed with same bucket');\n return { statusCode: 200, body: 'Hello from Lambda with same bucket!' };\n };\n "},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SOURCE_BUCKET_NAME":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59"},"DESTINATION_BUCKET_NAME":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranscribesamebucketLambdaFunctionServiceRole8F83E6A5","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.220.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribesamebucketLambdaFunctioninlinePolicyAddedToExecutionRole0056EA50B","roles":[{"Ref":"testlambdatranscribesamebucketLambdaFunctionServiceRole8F83E6A5"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.220.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["transcribe:GetTranscriptionJob","transcribe:ListTranscriptionJobs","transcribe:StartTranscriptionJob"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribesamebucketLambdaFunctioninlinePolicyAddedToExecutionRole181D868CB","roles":[{"Ref":"testlambdatranscribesamebucketLambdaFunctionServiceRole8F83E6A5"}]}}}}}}},"test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.220.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.220.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-same-bucket-source-bucketS3Bucket":{"id":"test-lambda-transcribe-same-bucket-source-bucketS3Bucket","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.220.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.220.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.220.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtsb-same-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.220.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtsb-same-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.220.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.220.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.220.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.220.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.220.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.220.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtsb-same-bucket":{"id":"lamtsb-same-bucket","path":"lamtsb-same-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-transcribe-same-bucket":{"id":"test-lambda-transcribe-same-bucket","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-transcribe.LambdaToTranscribe","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdatranscribesamebucketLambdaFunctionServiceRoleDefaultPolicyEF00E05B","roles":[{"Ref":"testlambdatranscribesamebucketLambdaFunctionServiceRole8F83E6A5"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"\n exports.handler = async (event) => {\n console.log('Lambda function executed with same bucket');\n return { statusCode: 200, body: 'Hello from Lambda with same bucket!' };\n };\n "},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SOURCE_BUCKET_NAME":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59"},"DESTINATION_BUCKET_NAME":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59"}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranscribesamebucketLambdaFunctionServiceRole8F83E6A5","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribesamebucketLambdaFunctioninlinePolicyAddedToExecutionRole0056EA50B","roles":[{"Ref":"testlambdatranscribesamebucketLambdaFunctionServiceRole8F83E6A5"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["transcribe:GetTranscriptionJob","transcribe:ListTranscriptionJobs","transcribe:StartTranscriptionJob"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranscribesamebucketLambdaFunctioninlinePolicyAddedToExecutionRole181D868CB","roles":[{"Ref":"testlambdatranscribesamebucketLambdaFunctionServiceRole8F83E6A5"}]}}}}}}},"test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket":{"id":"test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-transcribe-same-bucket-source-bucketS3Bucket":{"id":"test-lambda-transcribe-same-bucket-source-bucketS3Bucket","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3LoggingBucket336DA812"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtsb-same-bucket/test-lambda-transcribe-same-bucket/test-lambda-transcribe-same-bucket-source-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranscribesamebuckettestlambdatranscribesamebucketsourcebucketS3BucketEE004C59","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtsb-same-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtsb-same-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.ts index fa227c498..50182240b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/integ.lamtsb-same-bucket.ts @@ -28,7 +28,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-transcribe // Definitions new LambdaToTranscribe(stack, 'test-lambda-transcribe-same-bucket', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', code: lambda.Code.fromInline(` exports.handler = async (event) => { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/lambda-transcribe.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/lambda-transcribe.test.ts index a076e0ab6..7530c1268 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/lambda-transcribe.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-transcribe/test/lambda-transcribe.test.ts @@ -20,7 +20,7 @@ import * as defaults from '@aws-solutions-constructs/core'; function deployTestConstructStructure(stack: Stack, props?: any) { return new LambdaToTranscribe(stack, 'test-lambda-transcribe', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', code: lambda.Code.fromInline('exports.handler = async () => {};') }, @@ -45,7 +45,7 @@ test('Test deployment with no optional parameters', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { - Runtime: 'nodejs20.x' + Runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_STRING, }); template.resourceCountIs('AWS::S3::Bucket', 4); // 2 main buckets + 2 logging buckets }); @@ -393,7 +393,7 @@ test('Test error on both existing Lambda and Lambda props', () => { const stack = new Stack(app, "test-stack"); const existingLambda = new lambda.Function(stack, 'existing-lambda', { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', code: lambda.Code.fromInline('exports.handler = async () => {};') }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/.gitignore b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/.gitignore new file mode 100644 index 000000000..3aa55cf58 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/.gitignore @@ -0,0 +1,30 @@ +*.js +*.js.map +*.d.ts +node_modules +*.generated.ts +dist +.jsii + +.nyc_output +coverage +.nycrc +.LAST_BUILD +.nyc_output +junit.xml +test-reports/ +!jest.config.js +*.tsbuildinfo + +.LAST_PACKAGE +*.snk +nyc.config.js +!.eslintrc.js +!jest.config.js + +# CDK asset staging directory +.cdk.staging +cdk.out + +# Parcel default cache directory +.parcel-cache diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/.npmignore b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/.npmignore new file mode 100644 index 000000000..24c13276d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/.npmignore @@ -0,0 +1,34 @@ +# The basics +*.ts +*.tsx +!*.d.ts +!*.js +*.map +.jsii +.nyc_output +coverage +node_modules +*.tgz +*.snk +tsconfig.json +.eslintrc.js +# Runtime dependencies (we bundle them) +/node_modules/ + +# Test .js files +test/ +!*.d.ts +*.tsbuildinfo + +# exclude cdk artifacts +**/cdk.out +junit.xml +test-reports/ + + +# Exclude jsii outdir +dist + +# Include .jsii and .jsii.gz +!.jsii +!.jsii.gz diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/README.adoc b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/README.adoc new file mode 100644 index 000000000..e72110a60 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/README.adoc @@ -0,0 +1,300 @@ +//!!NODE_ROOT
+//== aws-lambda-translate module + +[.topic] += aws-lambda-translate +:info_doctype: section +:info_title: aws-lambda-translate + + +image:https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge[Stability:Experimental] + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Reference Documentation*: +|https://docs.aws.amazon.com/solutions/latest/constructs/ +|=== + +[width="100%",cols="<46%,54%",options="header",] +|=== +|*Language* |*Package* +|image:https://docs.aws.amazon.com/cdk/api/latest/img/python32.png[Python +Logo] Python |`aws_solutions_constructs.aws_lambda_translate` + +|image:https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png[Typescript +Logo] Typescript |`@aws-solutions-constructs/aws-lambda-translate` + +|image:https://docs.aws.amazon.com/cdk/api/latest/img/java32.png[Java +Logo] Java |`software.amazon.awsconstructs.services.lambdatranslate` +|=== + +== Overview + +This AWS Solutions Construct implements an AWS Lambda function connected +to Amazon Translate service. For asynchronous translation jobs, the construct +can optionally create source and destination S3 buckets with appropriate IAM +permissions for the Lambda function to interact with both buckets and Amazon +Translate service. + +Here is a minimal deployable pattern definition: + +==== +[role="tablist"] +Typescript:: ++ +[source,typescript] +---- +import { Construct } from 'constructs'; +import { Stack, StackProps } from 'aws-cdk-lib'; +import { LambdaToTranslate } from '@aws-solutions-constructs/aws-lambda-translate'; +import * as lambda from 'aws-cdk-lib/aws-lambda'; + +new LambdaToTranslate(this, 'LambdaToTranslatePattern', { + lambdaFunctionProps: { + runtime: lambda.Runtime.NODEJS_22_X, + handler: 'index.handler', + code: lambda.Code.fromAsset(`lambda`) + } +}); +---- + +Python:: ++ +[source,python] +---- +from aws_solutions_constructs.aws_lambda_translate import LambdaToTranslate +from aws_cdk import ( + aws_lambda as _lambda, + Stack +) +from constructs import Construct + +LambdaToTranslate(self, 'LambdaToTranslatePattern', + lambda_function_props=_lambda.FunctionProps( + code=_lambda.Code.from_asset('lambda'), + runtime=_lambda.Runtime.PYTHON_3_11, + handler='index.handler' + ) + ) +---- + +Java:: ++ +[source,java] +---- +import software.constructs.Construct; + +import software.amazon.awscdk.Stack; +import software.amazon.awscdk.StackProps; +import software.amazon.awscdk.services.lambda.*; +import software.amazon.awscdk.services.lambda.Runtime; +import software.amazon.awsconstructs.services.lambdatranslate.*; + +new LambdaToTranslate(this, "LambdaToTranslatePattern", new LambdaToTranslateProps.Builder() + .lambdaFunctionProps(new FunctionProps.Builder() + .runtime(Runtime.NODEJS_22_X) + .code(Code.fromAsset("lambda")) + .handler("index.handler") + .build()) + .build()); +---- +==== + +== Pattern Construct Props + +[width="100%",cols="<30%,<35%,35%",options="header",] +|=== +|*Name* |*Type* |*Description* +|existingLambdaObj? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html[`lambda.Function`] +|Existing instance of Lambda Function object, providing both this and +`lambdaFunctionProps` will cause an error. + +|lambdaFunctionProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.FunctionProps.html[`lambda.FunctionProps`] +|Optional user provided props to override the default props for the +Lambda function. + +|asyncJobs? |`boolean` |Whether to enable asynchronous translation jobs. When true, source and destination S3 buckets will be created and the Lambda function will be granted permissions to start and stop translation jobs. Default: false + +|existingSourceBucketObj? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Existing instance of S3 Bucket object for source files. If this is provided, then also +providing sourceBucketProps is an error. Only valid when asyncJobs is true. + +|sourceBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the source S3 +Bucket. Only valid when asyncJobs is true. + +|existingDestinationBucketObj? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Existing instance of S3 Bucket object for translation results. If this is provided, then also +providing destinationBucketProps is an error. Only valid when asyncJobs is true. + +|destinationBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the destination S3 +Bucket. Only valid when asyncJobs is true. + +|useSameBucket? |`boolean` |Whether to use the same S3 bucket for both source and destination files. +When true, only the source bucket will be created and used for both purposes. Only valid when asyncJobs is true. Default: false + +|additionalPermissions? |`string[]` |Optional array of additional IAM permissions to grant to the Lambda function for Amazon Translate. Default: ['translate:TranslateText', 'translate:TranslateDocument'] + +|existingVpc? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html[`ec2.IVpc`] +|An optional, existing VPC into which this pattern should be deployed. +When deployed in a VPC, the Lambda function will use ENIs in the VPC to +access network resources and Interface Endpoints will be created in +the VPC for Amazon Translate. If asyncJobs is true, Interface Endpoints for Amazon S3 will also be created. If an existing VPC is provided, the `deployVpc` +property cannot be `true`. This uses `ec2.IVpc` to allow clients to +supply VPCs that exist outside the stack using the +https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Vpc.html#static-fromwbrlookupscope-id-options[`ec2.Vpc.fromLookup()`] +method. + +|vpcProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.VpcProps.html[`ec2.VpcProps`] +|Optional user provided properties to override the default properties +for the new VPC. `enableDnsHostnames`, `enableDnsSupport`, `natGateways` +and `subnetConfiguration` are set by the pattern, so any values for +those properties supplied here will be overridden. If `deployVpc` is not +`true` then this property will be ignored. + +|deployVpc? |`boolean` |Whether to create a new VPC based on `vpcProps` +into which to deploy this pattern. Setting this to true will deploy the +minimal, most private VPC to run the pattern. + +|sourceBucketEnvironmentVariableName? |`string` |Optional Name for the Lambda +function environment variable set to the name of the source bucket. Only valid when asyncJobs is true. Default: +SOURCE_BUCKET_NAME + +|destinationBucketEnvironmentVariableName? |`string` |Optional Name for the Lambda +function environment variable set to the name of the destination bucket. Only valid when asyncJobs is true. Default: +DESTINATION_BUCKET_NAME + +|dataAccessRoleArnEnvironmentVariableName? |`string` |Optional Name for the Lambda +function environment variable set to the ARN of the IAM role used for asynchronous translation jobs. Only valid when asyncJobs is true. Default: +DATA_ACCESS_ROLE_ARN + +|sourceLoggingBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the source S3 +Logging Bucket. Only valid when asyncJobs is true. + +|destinationLoggingBucketProps? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.BucketProps.html[`s3.BucketProps`] +|Optional user provided props to override the default props for the destination S3 +Logging Bucket. Only valid when asyncJobs is true. + +|logSourceS3AccessLogs? |boolean |Whether to turn on Access Logging for the source S3 +bucket. Creates an S3 bucket with associated storage costs for the logs. +Enabling Access Logging is a best practice. Only valid when asyncJobs is true. default - true + +|logDestinationS3AccessLogs? |boolean |Whether to turn on Access Logging for the destination S3 +bucket. Creates an S3 bucket with associated storage costs for the logs. +Enabling Access Logging is a best practice. Only valid when asyncJobs is true. default - true +|=== + +== Pattern Properties + +[width="100%",cols="<30%,<35%,35%",options="header",] +|=== +|*Name* |*Type* |*Description* +|lambdaFunction +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html[`lambda.Function`] +|Returns an instance of the Lambda function created by the pattern. + +|sourceBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of the source S3 bucket if it is created by the pattern. + +|destinationBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of the destination S3 bucket if it is created by the pattern. + +|sourceLoggingBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of s3.Bucket created by the construct as the +logging bucket for the source bucket. + +|destinationLoggingBucket? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html[`s3.Bucket`] +|Returns an instance of s3.Bucket created by the construct as the +logging bucket for the destination bucket. + +|vpc? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html[`ec2.IVpc`] +|Returns an interface on the VPC used by the pattern (if any). This may +be a VPC created by the pattern or the VPC supplied to the pattern +constructor. + +|sourceBucketInterface? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Returns an interface of s3.IBucket used by the construct for the source bucket whether created by the pattern or supplied from the client. + +|destinationBucketInterface? +|https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html[`s3.IBucket`] +|Returns an interface of s3.IBucket used by the construct for the destination bucket whether created by the pattern or supplied from the client. +|=== + +== Default settings + +Out of the box implementation of the Construct without any override will +set the following defaults: + +=== AWS Lambda Function + +* Configure limited privilege access IAM role for Lambda function +* Enable reusing connections with Keep-Alive for NodeJs Lambda function +* Enable X-Ray Tracing +* Set Environment Variables +** (default) SOURCE_BUCKET_NAME (when asyncJobs is true) +** (default) DESTINATION_BUCKET_NAME (when asyncJobs is true) +** (default) DATA_ACCESS_ROLE_ARN (when asyncJobs is true) +** AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x +and higher functions) +* Grant permissions to use Amazon Translate service (['translate:TranslateText', 'translate:TranslateDocument'] by default) +* When asyncJobs is true, grant permissions to start and stop batch translation jobs (translate:StartTextTranslationJob and translate:StopTextTranslationJob), read from source bucket, and read and write to destination bucket + +=== Amazon S3 Buckets (when asyncJobs is true) + +* Configure Access logging for both S3 Buckets +* Enable server-side encryption for both S3 Buckets using AWS managed KMS Key +* Enforce encryption of data in transit +* Turn on the versioning for both S3 Buckets +* Don't allow public access for both S3 Buckets +* Retain the S3 Buckets when deleting the CloudFormation stack +* Applies Lifecycle rule to move noncurrent object versions to Glacier +storage after 90 days + +=== Amazon Translate Service + +* Lambda function will have permissions to ['translate:TranslateText', 'translate:TranslateDocument'] operations by default +* When asyncJobs is true, Lambda function will have permissions to start and stop batch translation jobs +* A role granting access to the source and destination buckets will be created to pass to Translate for StartTextTranslationJob calls + +=== Amazon VPC + +* If deployVpc is true, a minimal VPC will be created with: +** Interface Endpoints for Amazon Translate +** Interface Endpoints for Amazon S3 (when asyncJobs is true) +** Private subnets for Lambda function +** Appropriate security groups and routing + +== Architecture + +**Default Implementation** + +image::aws-lambda-translate.png["Diagram showing the Lambda functionAmazon Translate service, and IAM role created by the construct",scaledwidth=100%] + +**Default Implementation when asyncJobs = true** + +image::aws-lambda-translate-async.png["Diagram showing the Lambda function, source and destination S3 buckets (when asyncJobs is true), Amazon Translate service, and IAM roles created by the construct",scaledwidth=100%] + + +// github block + +''''' + +© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/README.md new file mode 100644 index 000000000..63cd33e60 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/README.md @@ -0,0 +1,31 @@ +# aws-lambda-translate module + + + +--- + +![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) + +--- + + +| **Reference Documentation**:| https://docs.aws.amazon.com/solutions/latest/constructs/| +|:-------------|:-------------| + +
+ +| Language | Package | +|:---------|---------| +|![Python Logo](https://docs.aws.amazon.com/cdk/api/latest/img/python32.png) Python|`aws_solutions_constructs.aws_lambda_translate`| +|![Typescript Logo](https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png) Typescript|`@aws-solutions-constructs/aws-lambda-translate`| +|![Java Logo](https://docs.aws.amazon.com/cdk/api/latest/img/java32.png) Java|`software.amazon.awsconstructs.services.lambdatranslate`| + +## Overview + +This AWS Solutions Construct implements an AWS Lambda function connected to Amazon Translate service. For asynchronous translation jobs, the construct can optionally create source and destination S3 buckets with appropriate IAM permissions for the Lambda function to interact with both buckets and Amazon Translate service. + +For full documentation, see the [README.adoc](README.adoc) file. + +--- + +© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/aws-lambda-translate-async.png b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/aws-lambda-translate-async.png new file mode 100644 index 000000000..f426641e2 Binary files /dev/null and b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/aws-lambda-translate-async.png differ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/aws-lambda-translate.png b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/aws-lambda-translate.png new file mode 100644 index 000000000..c0b608107 Binary files /dev/null and b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/aws-lambda-translate.png differ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/integ.config.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/integ.config.json new file mode 100644 index 000000000..93d8ca4b6 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/integ.config.json @@ -0,0 +1,7 @@ +{ + "parallelRegions": [ + "us-east-1" + ], + "disable-update-workflow": true, + "update-on-failed": false +} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/lib/index.ts new file mode 100644 index 000000000..6b82bf0bb --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/lib/index.ts @@ -0,0 +1,277 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +// Imports +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import * as s3 from 'aws-cdk-lib/aws-s3'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as defaults from '@aws-solutions-constructs/core'; +// Note: To ensure CDKv2 compatibility, keep the import statement for Construct separate +import { Construct } from 'constructs'; + +/** + * @summary The properties for the LambdaToTranslate class. + */ +export interface LambdaToTranslateProps { + /** + * Existing instance of Lambda Function object, providing both this and `lambdaFunctionProps` will cause an error. + * + * @default - None + */ + readonly existingLambdaObj?: lambda.Function; + /** + * Optional user provided props to override the default props for the Lambda function. + * + * @default - Default properties are used. + */ + readonly lambdaFunctionProps?: lambda.FunctionProps; + /** + * Whether to enable asynchronous translation jobs. When true, source and destination S3 buckets will be created and the Lambda function + * will be granted permissions to start and stop translation jobs. + * + * @default - false + */ + readonly asyncJobs?: boolean; + /** + * Existing instance of S3 Bucket object for source files, providing both this and `sourceBucketProps` will cause an error. + * Only valid when asyncJobs is true. + * + * @default - None + */ + readonly existingSourceBucketObj?: s3.IBucket; + /** + * Optional user provided props to override the default props for the source S3 Bucket. Only valid when asyncJobs is true. + * + * @default - Default props are used + */ + readonly sourceBucketProps?: s3.BucketProps; + /** + * Existing instance of S3 Bucket object for translation results, providing both this and `destinationBucketProps` will cause an error. + * Only valid when asyncJobs is true. + * + * @default - None + */ + readonly existingDestinationBucketObj?: s3.IBucket; + /** + * Optional user provided props to override the default props for the destination S3 Bucket. Only valid when asyncJobs is true. + * + * @default - Default props are used + */ + readonly destinationBucketProps?: s3.BucketProps; + /** + * Whether to use the same S3 bucket for both source and destination files. When true, only the source bucket will be created and used + * for both purposes. Only valid when asyncJobs is true. + * + * @default - false + */ + readonly useSameBucket?: boolean; + /** + * Optional array of additional IAM permissions to grant to the Lambda function for Amazon Translate. + * + * @default - ['translate:TranslateText', 'translate:TranslateDocument'] + */ + readonly additionalPermissions?: string[]; + /** + * An existing VPC for the construct to use (construct will NOT create a new VPC in this case) + */ + readonly existingVpc?: ec2.IVpc; + /** + * Properties to override default properties if deployVpc is true + */ + readonly vpcProps?: ec2.VpcProps; + /** + * Whether to deploy a new VPC + * + * @default - false + */ + readonly deployVpc?: boolean; + /** + * Optional Name for the Lambda function environment variable set to the name of the source bucket. Only valid when asyncJobs is true. + * + * @default - SOURCE_BUCKET_NAME + */ + readonly sourceBucketEnvironmentVariableName?: string; + /** + * Optional Name for the Lambda function environment variable set to the name of the destination bucket. Only valid when asyncJobs is true. + * + * @default - DESTINATION_BUCKET_NAME + */ + readonly destinationBucketEnvironmentVariableName?: string; + /** + * Optional Name for the role to pass to Batch translate jobs. Only set if asyncJobs is true + * + * @default - DATA_ACCESS_ROLE_ARN + */ + readonly dataAccessRoleArnEnvironmentVariableName?: string; + /** + * Optional user provided props to override the default props for the source S3 Logging Bucket. Only valid when asyncJobs is true. + * + * @default - Default props are used + */ + readonly sourceLoggingBucketProps?: s3.BucketProps; + /** + * Optional user provided props to override the default props for the destination S3 Logging Bucket. Only valid when asyncJobs is true. + * + * @default - Default props are used + */ + readonly destinationLoggingBucketProps?: s3.BucketProps; + /** + * Whether to turn on Access Logs for the source S3 bucket with the associated storage costs. Enabling Access Logging is a best practice. + * Only valid when asyncJobs is true. + * + * @default - true + */ + readonly logSourceS3AccessLogs?: boolean; + /** + * Whether to turn on Access Logs for the destination S3 bucket with the associated storage costs. Enabling Access Logging is a best practice. + * Only valid when asyncJobs is true. + * + * @default - true + */ + readonly logDestinationS3AccessLogs?: boolean; +} + +export interface EnvironmentVariableDefinition { + readonly defaultName: string, + readonly clientNameOverride?: string, + readonly value: string +} + +/** + * @summary The LambdaToTranslate class. + */ +export class LambdaToTranslate extends Construct { + public readonly lambdaFunction: lambda.Function; + // Buckets will be set if this construct creates them, if existing buckets are passed in, these will not be set + public readonly sourceBucket?: s3.Bucket; + public readonly destinationBucket?: s3.Bucket; + public readonly sourceLoggingBucket?: s3.Bucket; + public readonly destinationLoggingBucket?: s3.Bucket; + public readonly vpc?: ec2.IVpc; + // Interfaces will always be set, either with the new bucket or the existingBucket interfaces passed in props + public readonly sourceBucketInterface?: s3.IBucket; + public readonly destinationBucketInterface?: s3.IBucket; + + /** + * @summary Constructs a new instance of the LambdaToTranslate class. + * @param {cdk.App} scope - represents the scope for all the resources. + * @param {string} id - this is a a scope-unique id. + * @param {LambdaToTranslateProps} props - user provided props for the construct. + * @access public + */ + constructor(scope: Construct, id: string, props: LambdaToTranslateProps) { + super(scope, id); + + // All our tests are based upon this behavior being on, so we're setting + // context here rather than assuming the client will set it + this.node.setContext("@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy", true); + + // Check props + defaults.CheckVpcProps(props); + defaults.CheckLambdaProps(props); + defaults.CheckTranslateProps(props); + + // Setup VPC if required + if (props.deployVpc || props.existingVpc) { + this.vpc = defaults.buildVpc(scope, { + defaultVpcProps: defaults.DefaultIsolatedVpcProps(), + existingVpc: props.existingVpc, + userVpcProps: props.vpcProps, + constructVpcProps: { + enableDnsHostnames: true, + enableDnsSupport: true, + }, + }); + + defaults.AddAwsServiceEndpoint(scope, this.vpc, defaults.ServiceEndpointTypes.TRANSLATE); + if (props.asyncJobs) { + defaults.AddAwsServiceEndpoint(scope, this.vpc, defaults.ServiceEndpointTypes.S3); + } + } + const lambdaEnvironmentVariables: EnvironmentVariableDefinition[] = []; + + const translateConfiguration = defaults.ConfigureTranslateSupport(this, id, props); + + if (translateConfiguration.sourceBucket) { + // Incorporate all the configuration created (to support async jobs) + this.sourceBucket = translateConfiguration.sourceBucket.bucket; + this.sourceLoggingBucket = translateConfiguration.sourceBucket.loggingBucket; + this.sourceBucketInterface = translateConfiguration.sourceBucket.bucketInterface; + + this.destinationBucket = translateConfiguration.destinationBucket?.bucket; + this.destinationLoggingBucket = translateConfiguration.destinationBucket?.loggingBucket; + this.destinationBucketInterface = translateConfiguration.destinationBucket?.bucketInterface; + + lambdaEnvironmentVariables.push({ + defaultName: "SOURCE_BUCKET_NAME", + clientNameOverride: props.sourceBucketEnvironmentVariableName, + value: this.sourceBucketInterface.bucketName + }); + lambdaEnvironmentVariables.push({ + defaultName: "DESTINATION_BUCKET_NAME", + clientNameOverride: props.destinationBucketEnvironmentVariableName, + value: this.destinationBucketInterface?.bucketName! + }); + lambdaEnvironmentVariables.push({ + defaultName: "DATA_ACCESS_ROLE_ARN", + clientNameOverride: props.dataAccessRoleArnEnvironmentVariableName, + value: translateConfiguration.translateRole?.roleArn! + }); + } + + // Now we know everything the Lambda Function needs, we can configure it + this.lambdaFunction = defaults.buildLambdaFunction(this, { + existingLambdaObj: props.existingLambdaObj, + lambdaFunctionProps: props.lambdaFunctionProps, + vpc: this.vpc, + }); + + // Add all actions from translate configuration and client to the Lambda function + // PassRole is handled separately, because it must specify role being passed as the resource + const lambdaFunctionRoleActions: string[] = []; + translateConfiguration.lambdaIamActionsRequired.forEach(action => { + lambdaFunctionRoleActions.push(action); + }); + + if (props.additionalPermissions) { + props.additionalPermissions.forEach(permission => { + if (!lambdaFunctionRoleActions.includes(permission)) { + lambdaFunctionRoleActions.push(permission); + } + }); + } + + this.lambdaFunction.addToRolePolicy(new iam.PolicyStatement({ + effect: iam.Effect.ALLOW, + actions: lambdaFunctionRoleActions, + resources: ['*'] + })); + + // Add PassRole in it's own statement + if (translateConfiguration.translateRole) { + this.lambdaFunction.addToRolePolicy(new iam.PolicyStatement({ + effect: iam.Effect.ALLOW, + actions: ["iam:PassRole"], + resources: [translateConfiguration.translateRole.roleArn] + })); + } + + // Configure environment variables + lambdaEnvironmentVariables.forEach(variable => { + const varName = variable.clientNameOverride || variable.defaultName; + this.lambdaFunction.addEnvironment(varName, variable.value); + }); + + } +} diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/package.json new file mode 100644 index 000000000..be8f87287 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/package.json @@ -0,0 +1,95 @@ +{ + "name": "@aws-solutions-constructs/aws-lambda-translate", + "version": "0.0.0", + "description": "CDK constructs for defining an interaction between an AWS Lambda function and Amazon Translate with optional S3 buckets.", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/awslabs/aws-solutions-constructs.git", + "directory": "source/patterns/@aws-solutions-constructs/aws-lambda-translate" + }, + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "license": "Apache-2.0", + "scripts": { + "build": "tsc -b .", + "lint": "eslint --config ../eslintrc.config.mjs --no-warn-ignored .", + "lint-fix": "eslint --config ../eslintrc.config.mjs --ext=.js,.ts --fix .", + "test": "jest --coverage", + "clean": "tsc -b --clean", + "watch": "tsc -b -w", + "asciidoc": "asciidoctor --failure-level WARNING -o /dev/null README.adoc", + "integ": "integ-runner --update-on-failed", + "integ-assert": "integ-runner", + "jsii": "jsii", + "jsii-pacmak": "jsii-pacmak", + "build+lint+test": "npm run jsii && npm run lint && npm run asciidoc && npm test && npm run integ-assert", + "blt": "npm run build+lint+test", + "integ-no-clean": "integ-runner --update-on-failed --no-clean", + "snapshot-update": "npm run jsii && npm test -- -u && npm run integ-assert" + }, + "jsii": { + "outdir": "dist", + "targets": { + "java": { + "package": "software.amazon.awsconstructs.services.lambdatranslate", + "maven": { + "groupId": "software.amazon.awsconstructs", + "artifactId": "lambdatranslate" + } + }, + "dotnet": { + "namespace": "Amazon.SolutionsConstructs.AWS.LambdaTranslate", + "packageId": "Amazon.SolutionsConstructs.AWS.LambdaTranslate", + "signAssembly": true, + "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png" + }, + "python": { + "distName": "aws-solutions-constructs.aws-lambda-translate", + "module": "aws_solutions_constructs.aws_lambda_translate" + } + } + }, + "dependencies": { + "@aws-solutions-constructs/core": "0.0.0", + "constructs": "^10.0.0" + }, + "devDependencies": { + "@aws-cdk/integ-tests-alpha": "0.0.0-alpha.0", + "@types/node": "^10.3.0", + "constructs": "^10.0.0", + "aws-cdk-lib": "0.0.0" + }, + "jest": { + "moduleFileExtensions": [ + "js" + ], + "coverageReporters": [ + "text", + [ + "lcov", + { + "projectRoot": "../../../../" + } + ] + ] + }, + "peerDependencies": { + "@aws-solutions-constructs/core": "0.0.0", + "constructs": "^10.0.0", + "aws-cdk-lib": "^0.0.0" + }, + "keywords": [ + "aws", + "cdk", + "awscdk", + "AWS Solutions Constructs", + "Amazon S3", + "AWS Lambda", + "Amazon Translate" + ] +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json new file mode 100644 index 000000000..663c558b3 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "IntegDefaultTestDeployAssert4E6713E1 Template", + "source": { + "path": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-d8d86b35": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json new file mode 100644 index 000000000..ad9d0fb73 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/integ.json new file mode 100644 index 000000000..c3ae1f658 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/integ.json @@ -0,0 +1,13 @@ +{ + "version": "48.0.0", + "testCases": { + "Integ/DefaultTest": { + "stacks": [ + "lamtrl-async-jobs" + ], + "assertionStack": "Integ/DefaultTest/DeployAssert", + "assertionStackName": "IntegDefaultTestDeployAssert4E6713E1" + } + }, + "minimumCliVersion": "2.1029.2" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/lamtrl-async-jobs.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/lamtrl-async-jobs.assets.json new file mode 100644 index 000000000..731095d7f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/lamtrl-async-jobs.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "d751ef91131cafbf8cd0d969daa995a9c0fd82ec6586bc7eee9dc4ef71962eb1": { + "displayName": "lamtrl-async-jobs Template", + "source": { + "path": "lamtrl-async-jobs.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-70f09f54": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "d751ef91131cafbf8cd0d969daa995a9c0fd82ec6586bc7eee9dc4ef71962eb1.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/lamtrl-async-jobs.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/lamtrl-async-jobs.template.json new file mode 100644 index 000000000..bc8462ad8 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/lamtrl-async-jobs.template.json @@ -0,0 +1,764 @@ +{ + "Description": "Integration Test for aws-lambda-translate with asyncJobs", + "Resources": { + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W35", + "reason": "This S3 bucket is used as the access logging bucket for another bucket" + } + ] + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketPolicy308DE110": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": "s3:PutObject", + "Condition": { + "ArnLike": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + } + }, + "StringEquals": { + "aws:SourceAccount": { + "Ref": "AWS::AccountId" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "logging.s3.amazonaws.com" + }, + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4", + "Arn" + ] + }, + "/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "LifecycleConfiguration": { + "Rules": [ + { + "NoncurrentVersionTransitions": [ + { + "StorageClass": "GLACIER", + "TransitionInDays": 90 + } + ], + "Status": "Enabled" + } + ] + }, + "LoggingConfiguration": { + "DestinationBucketName": { + "Ref": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4" + } + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3BucketPolicy8D30C760": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W35", + "reason": "This S3 bucket is used as the access logging bucket for another bucket" + } + ] + } + } + }, + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucketPolicyF333EAB1": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": "s3:PutObject", + "Condition": { + "ArnLike": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + } + }, + "StringEquals": { + "aws:SourceAccount": { + "Ref": "AWS::AccountId" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "logging.s3.amazonaws.com" + }, + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6", + "Arn" + ] + }, + "/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "LifecycleConfiguration": { + "Rules": [ + { + "NoncurrentVersionTransitions": [ + { + "StorageClass": "GLACIER", + "TransitionInDays": 90 + } + ], + "Status": "Enabled" + } + ] + }, + "LoggingConfiguration": { + "DestinationBucketName": { + "Ref": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6" + } + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketPolicy7C3A663B": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "translate.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:Abort*", + "s3:DeleteObject*", + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:PutObjectTagging", + "s3:PutObjectVersionTagging" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C", + "Roles": [ + { + "Ref": "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "LambdaFunctionServiceRolePolicy" + } + ] + }, + "Metadata": { + "guard": { + "SuppressedRules": [ + "IAM_NO_INLINE_POLICY_CHECK" + ] + } + } + }, + "testlambdatranslatestackLambdaFunctionF76CF7B7": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => { console.log(event); return {'statusCode': 200, 'body': ''}; }" + }, + "Environment": { + "Variables": { + "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", + "SOURCE_BUCKET_NAME": { + "Ref": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7" + }, + "DESTINATION_BUCKET_NAME": { + "Ref": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865" + }, + "DATA_ACCESS_ROLE_ARN": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665", + "Arn" + ] + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "TracingConfig": { + "Mode": "Active" + } + }, + "DependsOn": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions." + }, + { + "id": "W89", + "reason": "This is not a rule for the general case, just for specific use cases/industries" + }, + { + "id": "W92", + "reason": "Impossible for us to define the correct concurrency for clients" + }, + { + "id": "W58", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W89", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W92", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + } + ] + } + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "xray:PutTelemetryRecords", + "xray:PutTraceSegments" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "translate:DescribeTextTranslationJob", + "translate:ListTextTranslationJobs", + "translate:StartTextTranslationJob", + "translate:StopTextTranslationJob", + "translate:TranslateDocument", + "translate:TranslateText" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "iam:PassRole", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/manifest.json new file mode 100644 index 000000000..bfac1eeec --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/manifest.json @@ -0,0 +1,1123 @@ +{ + "version": "48.0.0", + "artifacts": { + "lamtrl-async-jobs.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "lamtrl-async-jobs.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "lamtrl-async-jobs": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "lamtrl-async-jobs.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d751ef91131cafbf8cd0d969daa995a9c0fd82ec6586bc7eee9dc4ef71962eb1.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "lamtrl-async-jobs.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "lamtrl-async-jobs.assets" + ], + "metadata": { + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "S3_MANAGED", + "versioned": true, + "blockPublicAccess": "*", + "removalPolicy": "retain", + "enforceSSL": true + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketPolicy308DE110" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "S3_MANAGED", + "versioned": true, + "blockPublicAccess": "*", + "removalPolicy": "retain", + "enforceSSL": true, + "lifecycleRules": [ + { + "noncurrentVersionTransitions": [ + { + "storageClass": "*" + } + ] + } + ], + "serverAccessLogsBucket": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addLifecycleRule": [ + { + "noncurrentVersionTransitions": [ + { + "storageClass": "*" + } + ] + }, + "*", + "*" + ] + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3BucketPolicy8D30C760" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "S3_MANAGED", + "versioned": true, + "blockPublicAccess": "*", + "removalPolicy": "retain", + "enforceSSL": true + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucketPolicyF333EAB1" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "S3_MANAGED", + "versioned": true, + "blockPublicAccess": "*", + "removalPolicy": "retain", + "enforceSSL": true, + "lifecycleRules": [ + { + "noncurrentVersionTransitions": [ + { + "storageClass": "*" + } + ] + } + ], + "serverAccessLogsBucket": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addLifecycleRule": [ + { + "noncurrentVersionTransitions": [ + { + "storageClass": "*" + } + ] + }, + "*", + "*" + ] + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketPolicy7C3A663B" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Importtest-lambda-translate-stack-translate-service-role": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "role": "*", + "tracing": "Active", + "code": "*", + "runtime": "*", + "handler": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*", + { + "removeInEdge": true + } + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*" + ] + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionF76CF7B7" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370" + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D" + } + ], + "/lamtrl-async-jobs/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/lamtrl-async-jobs/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "lamtrl-async-jobs" + }, + "IntegDefaultTestDeployAssert4E6713E1.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "IntegDefaultTestDeployAssert4E6713E1.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "IntegDefaultTestDeployAssert4E6713E1": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "metadata": { + "/Integ/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "Integ/DefaultTest/DeployAssert" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } + } + }, + "minimumCliVersion": "2.1021.0" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/tree.json new file mode 100644 index 000000000..accde9ca6 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.js.snapshot/tree.json @@ -0,0 +1 @@ +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtrl-async-jobs":{"id":"lamtrl-async-jobs","path":"lamtrl-async-jobs","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-translate-stack":{"id":"test-lambda-translate-stack","path":"lamtrl-async-jobs/test-lambda-translate-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-translate.LambdaToTranslate","version":"2.95.1"},"children":{"test-lambda-translate-stack-source-bucketS3LoggingBucket":{"id":"test-lambda-translate-stack-source-bucketS3LoggingBucket","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-translate-stack-source-bucketS3Bucket":{"id":"test-lambda-translate-stack-source-bucketS3Bucket","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-lambda-translate-stack-destination-bucketS3LoggingBucket":{"id":"test-lambda-translate-stack-destination-bucketS3LoggingBucket","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-translate-stack-destination-bucketS3Bucket":{"id":"test-lambda-translate-stack-destination-bucketS3Bucket","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-lambda-translate-stack-translate-service-role":{"id":"test-lambda-translate-stack-translate-service-role","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"Importtest-lambda-translate-stack-translate-service-role":{"id":"Importtest-lambda-translate-stack-translate-service-role","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Importtest-lambda-translate-stack-translate-service-role","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"translate.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]},"/*"]]}]},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C","roles":[{"Ref":"testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665"}]}}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => { console.log(event); return {'statusCode': 200, 'body': ''}; }"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SOURCE_BUCKET_NAME":{"Ref":"testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7"},"DESTINATION_BUCKET_NAME":{"Ref":"testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865"},"DATA_ACCESS_ROLE_ARN":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665","Arn"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranslatestackLambdaFunctionServiceRoleAFC37061","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["translate:DescribeTextTranslationJob","translate:ListTextTranslationJobs","translate:StartTextTranslationJob","translate:StopTextTranslationJob","translate:TranslateDocument","translate:TranslateText"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-async-jobs/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"iam:PassRole","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtrl-async-jobs/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtrl-async-jobs/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.ts new file mode 100644 index 000000000..e918464e9 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-async-jobs.ts @@ -0,0 +1,41 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +// Imports +import { App, Stack } from "aws-cdk-lib"; +import { LambdaToTranslate } from "../lib"; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { generateIntegStackName, SetConsistentFeatureFlags } from '@aws-solutions-constructs/core'; +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import * as defaults from '@aws-solutions-constructs/core'; + +// Setup +const app = new App(); +const stack = new Stack(app, generateIntegStackName(__filename)); +SetConsistentFeatureFlags(stack); +stack.templateOptions.description = 'Integration Test for aws-lambda-translate with asyncJobs'; + +// Definitions +new LambdaToTranslate(stack, 'test-lambda-translate-stack', { + lambdaFunctionProps: { + code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'), + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, + handler: 'index.handler' + }, + asyncJobs: true +}); + +defaults.SuppressCfnNagLambdaWarnings(stack); + +// Synth +new IntegTest(app, 'Integ', { testCases: [stack] }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json new file mode 100644 index 000000000..663c558b3 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "IntegDefaultTestDeployAssert4E6713E1 Template", + "source": { + "path": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-d8d86b35": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json new file mode 100644 index 000000000..ad9d0fb73 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/integ.json new file mode 100644 index 000000000..7c09832e3 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/integ.json @@ -0,0 +1,13 @@ +{ + "version": "48.0.0", + "testCases": { + "Integ/DefaultTest": { + "stacks": [ + "lamtrl-deployVpc" + ], + "assertionStack": "Integ/DefaultTest/DeployAssert", + "assertionStackName": "IntegDefaultTestDeployAssert4E6713E1" + } + }, + "minimumCliVersion": "2.1029.2" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/lamtrl-deployVpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/lamtrl-deployVpc.assets.json new file mode 100644 index 000000000..92e796e1e --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/lamtrl-deployVpc.assets.json @@ -0,0 +1,34 @@ +{ + "version": "48.0.0", + "files": { + "7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200": { + "displayName": "lamtrl-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider Code", + "source": { + "path": "asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200", + "packaging": "zip" + }, + "destinations": { + "current_account-current_region-2561d6a5": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, + "1b19f965bcd699d1662b5a308b816d366c49e532cb34a954dc69da44989f9691": { + "displayName": "lamtrl-deployVpc Template", + "source": { + "path": "lamtrl-deployVpc.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-d4feef61": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "1b19f965bcd699d1662b5a308b816d366c49e532cb34a954dc69da44989f9691.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/lamtrl-deployVpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/lamtrl-deployVpc.template.json new file mode 100644 index 000000000..b02650866 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/lamtrl-deployVpc.template.json @@ -0,0 +1,775 @@ +{ + "Description": "Integration Test for aws-lambda-translate with VPC", + "Resources": { + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "LambdaFunctionServiceRolePolicy" + } + ] + }, + "Metadata": { + "guard": { + "SuppressedRules": [ + "IAM_NO_INLINE_POLICY_CHECK" + ] + } + } + }, + "testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "ec2:AssignPrivateIpAddresses", + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:UnassignPrivateIpAddresses" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W12", + "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC." + } + ] + } + } + }, + "testlambdatranslatestackReplaceDefaultSecurityGroupsecuritygroup5E18A780": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "lamtrl-deployVpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W5", + "reason": "Egress of 0.0.0.0/0 is default and generally considered OK" + }, + { + "id": "W40", + "reason": "Egress IPProtocol of -1 is default and generally considered OK" + } + ] + } + } + }, + "testlambdatranslatestackLambdaFunctionF76CF7B7": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => { console.log(event); return {'statusCode': 200, 'body': ''}; }" + }, + "Environment": { + "Variables": { + "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1" + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "TracingConfig": { + "Mode": "Active" + }, + "VpcConfig": { + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestackReplaceDefaultSecurityGroupsecuritygroup5E18A780", + "GroupId" + ] + } + ], + "SubnetIds": [ + { + "Ref": "VpcisolatedSubnet1SubnetE62B1B9B" + }, + { + "Ref": "VpcisolatedSubnet2Subnet39217055" + } + ] + } + }, + "DependsOn": [ + "testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654", + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061", + "VpcisolatedSubnet1RouteTableAssociationD259E31A", + "VpcisolatedSubnet2RouteTableAssociation25A4716F" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions." + }, + { + "id": "W89", + "reason": "This is not a rule for the general case, just for specific use cases/industries" + }, + { + "id": "W92", + "reason": "Impossible for us to define the correct concurrency for clients" + }, + { + "id": "W58", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W89", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W92", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + } + ] + } + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "xray:PutTelemetryRecords", + "xray:PutTraceSegments" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + }, + "DependsOn": [ + "VpcisolatedSubnet1RouteTableAssociationD259E31A", + "VpcisolatedSubnet2RouteTableAssociation25A4716F" + ] + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "translate:TranslateDocument", + "translate:TranslateText" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + }, + "DependsOn": [ + "VpcisolatedSubnet1RouteTableAssociationD259E31A", + "VpcisolatedSubnet2RouteTableAssociation25A4716F" + ] + }, + "Vpc8378EB38": { + "Type": "AWS::EC2::VPC", + "Properties": { + "CidrBlock": "10.0.0.0/16", + "EnableDnsHostnames": true, + "EnableDnsSupport": true, + "InstanceTenancy": "default", + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-deployVpc/Vpc" + } + ] + } + }, + "VpcisolatedSubnet1SubnetE62B1B9B": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.0.0/18", + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "isolated" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Isolated" + }, + { + "Key": "Name", + "Value": "lamtrl-deployVpc/Vpc/isolatedSubnet1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcisolatedSubnet1RouteTableE442650B": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-deployVpc/Vpc/isolatedSubnet1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcisolatedSubnet1RouteTableAssociationD259E31A": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VpcisolatedSubnet1RouteTableE442650B" + }, + "SubnetId": { + "Ref": "VpcisolatedSubnet1SubnetE62B1B9B" + } + } + }, + "VpcisolatedSubnet2Subnet39217055": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.64.0/18", + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "isolated" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Isolated" + }, + { + "Key": "Name", + "Value": "lamtrl-deployVpc/Vpc/isolatedSubnet2" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcisolatedSubnet2RouteTable334F9764": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-deployVpc/Vpc/isolatedSubnet2" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcisolatedSubnet2RouteTableAssociation25A4716F": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VpcisolatedSubnet2RouteTable334F9764" + }, + "SubnetId": { + "Ref": "VpcisolatedSubnet2Subnet39217055" + } + } + }, + "VpcRestrictDefaultSecurityGroupCustomResourceC73DA2BE": { + "Type": "Custom::VpcRestrictDefaultSG", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomVpcRestrictDefaultSGCustomResourceProviderHandlerDC833E5E", + "Arn" + ] + }, + "DefaultSecurityGroupId": { + "Fn::GetAtt": [ + "Vpc8378EB38", + "DefaultSecurityGroup" + ] + }, + "Account": { + "Ref": "AWS::AccountId" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "VpcFlowLogIAMRole6A475D41": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "vpc-flow-logs.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-deployVpc/Vpc/FlowLog" + } + ] + } + }, + "VpcFlowLogIAMRoleDefaultPolicy406FB995": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogStream", + "logs:DescribeLogStreams", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "VpcFlowLogLogGroup7B5C56B9", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "VpcFlowLogIAMRoleDefaultPolicy406FB995", + "Roles": [ + { + "Ref": "VpcFlowLogIAMRole6A475D41" + } + ] + } + }, + "VpcFlowLogLogGroup7B5C56B9": { + "Type": "AWS::Logs::LogGroup", + "Properties": { + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-deployVpc/Vpc/FlowLog" + } + ] + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W84", + "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)" + } + ] + } + } + }, + "VpcFlowLog8FF33A73": { + "Type": "AWS::EC2::FlowLog", + "Properties": { + "DeliverLogsPermissionArn": { + "Fn::GetAtt": [ + "VpcFlowLogIAMRole6A475D41", + "Arn" + ] + }, + "LogDestinationType": "cloud-watch-logs", + "LogGroupName": { + "Ref": "VpcFlowLogLogGroup7B5C56B9" + }, + "ResourceId": { + "Ref": "Vpc8378EB38" + }, + "ResourceType": "VPC", + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-deployVpc/Vpc/FlowLog" + } + ], + "TrafficType": "ALL" + } + }, + "VpcTRANSLATE71E7A833": { + "Type": "AWS::EC2::VPCEndpoint", + "Properties": { + "PrivateDnsEnabled": true, + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ + "lamtrldeployVpcTRANSLATEsecuritygroup9071D3D8", + "GroupId" + ] + } + ], + "ServiceName": { + "Fn::Join": [ + "", + [ + "com.amazonaws.", + { + "Ref": "AWS::Region" + }, + ".translate" + ] + ] + }, + "SubnetIds": [ + { + "Ref": "VpcisolatedSubnet1SubnetE62B1B9B" + }, + { + "Ref": "VpcisolatedSubnet2Subnet39217055" + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-deployVpc/Vpc" + } + ], + "VpcEndpointType": "Interface", + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + }, + "ManagedPolicyArns": [ + { + "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + } + ], + "Policies": [ + { + "PolicyName": "Inline", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "ec2:AuthorizeSecurityGroupIngress", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:RevokeSecurityGroupIngress", + "ec2:RevokeSecurityGroupEgress" + ], + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":ec2:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":security-group/", + { + "Fn::GetAtt": [ + "Vpc8378EB38", + "DefaultSecurityGroup" + ] + } + ] + ] + } + ] + } + ] + } + } + ] + }, + "Metadata": { + "guard": { + "SuppressedRules": [] + } + } + }, + "CustomVpcRestrictDefaultSGCustomResourceProviderHandlerDC833E5E": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200.zip" + }, + "Timeout": 900, + "MemorySize": 128, + "Handler": "__entrypoint__.handler", + "Role": { + "Fn::GetAtt": [ + "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Description": "Lambda function for removing all inbound/outbound rules from the VPC default security group" + }, + "DependsOn": [ + "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W89", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W92", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + } + ] + } + } + }, + "lamtrldeployVpcTRANSLATEsecuritygroup9071D3D8": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "lamtrl-deployVpc/lamtrl-deployVpc-TRANSLATE-security-group", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "SecurityGroupIngress": [ + { + "CidrIp": { + "Fn::GetAtt": [ + "Vpc8378EB38", + "CidrBlock" + ] + }, + "Description": { + "Fn::Join": [ + "", + [ + "from ", + { + "Fn::GetAtt": [ + "Vpc8378EB38", + "CidrBlock" + ] + }, + ":443" + ] + ] + }, + "FromPort": 443, + "IpProtocol": "tcp", + "ToPort": 443 + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W5", + "reason": "Egress of 0.0.0.0/0 is default and generally considered OK" + }, + { + "id": "W40", + "reason": "Egress IPProtocol of -1 is default and generally considered OK" + } + ] + } + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/manifest.json new file mode 100644 index 000000000..591bcbb1f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/manifest.json @@ -0,0 +1,1164 @@ +{ + "version": "48.0.0", + "artifacts": { + "lamtrl-deployVpc.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "lamtrl-deployVpc.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "lamtrl-deployVpc": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "lamtrl-deployVpc.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/1b19f965bcd699d1662b5a308b816d366c49e532cb34a954dc69da44989f9691.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "lamtrl-deployVpc.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "lamtrl-deployVpc.assets" + ], + "metadata": { + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654" + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "vpc": "*", + "allowAllOutbound": true + } + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackReplaceDefaultSecurityGroupsecuritygroup5E18A780" + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "role": "*", + "tracing": "Active", + "code": "*", + "runtime": "*", + "handler": "*", + "securityGroups": [ + "*" + ], + "vpc": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*", + { + "removeInEdge": true + } + ] + } + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionF76CF7B7" + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58" + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370" + } + ], + "/lamtrl-deployVpc/Vpc": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "natGateways": "*", + "subnetConfiguration": [ + { + "cidrMask": "*", + "name": "*", + "subnetType": "Isolated" + } + ], + "enableDnsHostnames": true, + "enableDnsSupport": true + } + } + ], + "/lamtrl-deployVpc/Vpc/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "Vpc8378EB38" + } + ], + "/lamtrl-deployVpc/Vpc/isolatedSubnet1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": false, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": false, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + } + ], + "/lamtrl-deployVpc/Vpc/isolatedSubnet1/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcisolatedSubnet1SubnetE62B1B9B" + } + ], + "/lamtrl-deployVpc/Vpc/isolatedSubnet1/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcisolatedSubnet1RouteTableE442650B" + } + ], + "/lamtrl-deployVpc/Vpc/isolatedSubnet1/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcisolatedSubnet1RouteTableAssociationD259E31A" + } + ], + "/lamtrl-deployVpc/Vpc/isolatedSubnet2": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": false, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": false, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + } + ], + "/lamtrl-deployVpc/Vpc/isolatedSubnet2/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcisolatedSubnet2Subnet39217055" + } + ], + "/lamtrl-deployVpc/Vpc/isolatedSubnet2/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcisolatedSubnet2RouteTable334F9764" + } + ], + "/lamtrl-deployVpc/Vpc/isolatedSubnet2/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcisolatedSubnet2RouteTableAssociation25A4716F" + } + ], + "/lamtrl-deployVpc/Vpc/RestrictDefaultSecurityGroupCustomResource": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-deployVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcRestrictDefaultSecurityGroupCustomResourceC73DA2BE" + } + ], + "/lamtrl-deployVpc/Vpc/FlowLog": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "resourceType": "*" + } + } + ], + "/lamtrl-deployVpc/Vpc/FlowLog/IAMRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "roleName": "*", + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/lamtrl-deployVpc/Vpc/FlowLog/IAMRole/ImportIAMRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-deployVpc/Vpc/FlowLog/IAMRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcFlowLogIAMRole6A475D41" + } + ], + "/lamtrl-deployVpc/Vpc/FlowLog/IAMRole/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], + "/lamtrl-deployVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcFlowLogIAMRoleDefaultPolicy406FB995" + } + ], + "/lamtrl-deployVpc/Vpc/FlowLog/LogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-deployVpc/Vpc/FlowLog/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcFlowLogLogGroup7B5C56B9" + } + ], + "/lamtrl-deployVpc/Vpc/FlowLog/FlowLog": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcFlowLog8FF33A73" + } + ], + "/lamtrl-deployVpc/Vpc/TRANSLATE": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "vpc": "*", + "service": { + "name": "*", + "port": "*", + "privateDnsDefault": true + }, + "securityGroups": [ + "*" + ] + } + } + ], + "/lamtrl-deployVpc/Vpc/TRANSLATE/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcTRANSLATE71E7A833" + } + ], + "/lamtrl-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider": [ + { + "type": "aws:cdk:is-custom-resource-handler-customResourceProvider", + "data": true + } + ], + "/lamtrl-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role": [ + { + "type": "aws:cdk:logicalId", + "data": "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0" + } + ], + "/lamtrl-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler": [ + { + "type": "aws:cdk:logicalId", + "data": "CustomVpcRestrictDefaultSGCustomResourceProviderHandlerDC833E5E" + } + ], + "/lamtrl-deployVpc/lamtrl-deployVpc-TRANSLATE-security-group": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "vpc": "*", + "allowAllOutbound": true + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addIngressRule": [ + { + "canInlineRule": true, + "connections": "*", + "uniqueId": "*" + }, + {}, + "*", + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addIngressRule": [ + { + "canInlineRule": true, + "connections": "*", + "uniqueId": "*" + }, + {}, + "*", + false + ] + } + } + ], + "/lamtrl-deployVpc/lamtrl-deployVpc-TRANSLATE-security-group/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "lamtrldeployVpcTRANSLATEsecuritygroup9071D3D8" + } + ], + "/lamtrl-deployVpc/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/lamtrl-deployVpc/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "lamtrl-deployVpc" + }, + "IntegDefaultTestDeployAssert4E6713E1.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "IntegDefaultTestDeployAssert4E6713E1.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "IntegDefaultTestDeployAssert4E6713E1": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "metadata": { + "/Integ/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "Integ/DefaultTest/DeployAssert" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } + } + }, + "minimumCliVersion": "2.1021.0" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/tree.json new file mode 100644 index 000000000..da95f9cb9 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.js.snapshot/tree.json @@ -0,0 +1 @@ +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtrl-deployVpc":{"id":"lamtrl-deployVpc","path":"lamtrl-deployVpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-translate-stack":{"id":"test-lambda-translate-stack","path":"lamtrl-deployVpc/test-lambda-translate-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-translate.LambdaToTranslate","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamtrl-deployVpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamtrl-deployVpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => { console.log(event); return {'statusCode': 200, 'body': ''}; }"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranslatestackLambdaFunctionServiceRoleAFC37061","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdatranslatestackReplaceDefaultSecurityGroupsecuritygroup5E18A780","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["translate:TranslateDocument","translate:TranslateText"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}}}}}},"Vpc":{"id":"Vpc","path":"lamtrl-deployVpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamtrl-deployVpc/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lamtrl-deployVpc/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamtrl-deployVpc/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamtrl-deployVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtrl-deployVpc/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtrl-deployVpc/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtrl-deployVpc/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtrl-deployVpc/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lamtrl-deployVpc/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lamtrl-deployVpc/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lamtrl-deployVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtrl-deployVpc/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtrl-deployVpc/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtrl-deployVpc/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtrl-deployVpc/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamtrl-deployVpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamtrl-deployVpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamtrl-deployVpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamtrl-deployVpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamtrl-deployVpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-deployVpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamtrl-deployVpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtrl-deployVpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamtrl-deployVpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamtrl-deployVpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamtrl-deployVpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamtrl-deployVpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"TRANSLATE":{"id":"TRANSLATE","path":"lamtrl-deployVpc/Vpc/TRANSLATE","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/Vpc/TRANSLATE/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtrl-deployVpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamtrldeployVpcTRANSLATEsecuritygroup9071D3D8","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".translate"]]},"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamtrl-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamtrl-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamtrl-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamtrl-deployVpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lamtrl-deployVpc-TRANSLATE-security-group":{"id":"lamtrl-deployVpc-TRANSLATE-security-group","path":"lamtrl-deployVpc/lamtrl-deployVpc-TRANSLATE-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-deployVpc/lamtrl-deployVpc-TRANSLATE-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamtrl-deployVpc/lamtrl-deployVpc-TRANSLATE-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtrl-deployVpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtrl-deployVpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.ts new file mode 100644 index 000000000..6d422605b --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-deployVpc.ts @@ -0,0 +1,41 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +// Imports +import { App, Stack } from "aws-cdk-lib"; +import { LambdaToTranslate } from "../lib"; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { generateIntegStackName, SetConsistentFeatureFlags } from '@aws-solutions-constructs/core'; +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import * as defaults from '@aws-solutions-constructs/core'; + +// Setup +const app = new App(); +const stack = new Stack(app, generateIntegStackName(__filename)); +SetConsistentFeatureFlags(stack); +stack.templateOptions.description = 'Integration Test for aws-lambda-translate with VPC'; + +// Definitions +new LambdaToTranslate(stack, 'test-lambda-translate-stack', { + lambdaFunctionProps: { + code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'), + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, + handler: 'index.handler' + }, + deployVpc: true +}); + +defaults.SuppressCfnNagLambdaWarnings(stack); + +// Synth +new IntegTest(app, 'Integ', { testCases: [stack] }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json new file mode 100644 index 000000000..663c558b3 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "IntegDefaultTestDeployAssert4E6713E1 Template", + "source": { + "path": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-d8d86b35": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json new file mode 100644 index 000000000..ad9d0fb73 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/integ.json new file mode 100644 index 000000000..b48df51bd --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/integ.json @@ -0,0 +1,13 @@ +{ + "version": "48.0.0", + "testCases": { + "Integ/DefaultTest": { + "stacks": [ + "lamtrl-existing-bucket" + ], + "assertionStack": "Integ/DefaultTest/DeployAssert", + "assertionStackName": "IntegDefaultTestDeployAssert4E6713E1" + } + }, + "minimumCliVersion": "2.1029.2" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/lamtrl-existing-bucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/lamtrl-existing-bucket.assets.json new file mode 100644 index 000000000..98a3155ea --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/lamtrl-existing-bucket.assets.json @@ -0,0 +1,34 @@ +{ + "version": "48.0.0", + "files": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { + "displayName": "lamtrl-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider Code", + "source": { + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", + "packaging": "zip" + }, + "destinations": { + "current_account-current_region-e31788a2": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, + "b17d16969efd848797eb99d182992714202dcbfb9fcc53376b046ce29ae84788": { + "displayName": "lamtrl-existing-bucket Template", + "source": { + "path": "lamtrl-existing-bucket.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-c13c04e6": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "b17d16969efd848797eb99d182992714202dcbfb9fcc53376b046ce29ae84788.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/lamtrl-existing-bucket.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/lamtrl-existing-bucket.template.json new file mode 100644 index 000000000..4751e627f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/lamtrl-existing-bucket.template.json @@ -0,0 +1,943 @@ +{ + "Description": "Integration Test for aws-lambda-translate with existing bucket", + "Resources": { + "existingbucketLogC09B1A39": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "Tags": [ + { + "Key": "aws-cdk:auto-delete-objects", + "Value": "true" + } + ], + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W35", + "reason": "This is a log bucket" + } + ] + } + } + }, + "existingbucketLogPolicy7F8A6388": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "existingbucketLogC09B1A39" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "existingbucketLogC09B1A39", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "existingbucketLogC09B1A39", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": [ + "s3:DeleteObject*", + "s3:GetBucket*", + "s3:List*", + "s3:PutBucketPolicy" + ], + "Effect": "Allow", + "Principal": { + "AWS": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", + "Arn" + ] + } + }, + "Resource": [ + { + "Fn::GetAtt": [ + "existingbucketLogC09B1A39", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "existingbucketLogC09B1A39", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": "s3:PutObject", + "Condition": { + "ArnLike": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "existingbucket2D00E3FD", + "Arn" + ] + } + }, + "StringEquals": { + "aws:SourceAccount": { + "Ref": "AWS::AccountId" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "logging.s3.amazonaws.com" + }, + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "existingbucketLogC09B1A39", + "Arn" + ] + }, + "/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + } + } + }, + "existingbucketLogAutoDeleteObjectsCustomResource6B4B12B4": { + "Type": "Custom::S3AutoDeleteObjects", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", + "Arn" + ] + }, + "BucketName": { + "Ref": "existingbucketLogC09B1A39" + } + }, + "DependsOn": [ + "existingbucketLogPolicy7F8A6388" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + }, + "ManagedPolicyArns": [ + { + "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + } + ] + } + }, + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" + }, + "Timeout": 900, + "MemorySize": 128, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Description": { + "Fn::Join": [ + "", + [ + "Lambda function for auto-deleting objects in ", + { + "Ref": "existingbucketLogC09B1A39" + }, + " S3 bucket." + ] + ] + } + }, + "DependsOn": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W89", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W92", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + } + ] + } + } + }, + "existingbucket2D00E3FD": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "LoggingConfiguration": { + "DestinationBucketName": { + "Ref": "existingbucketLogC09B1A39" + } + }, + "Tags": [ + { + "Key": "aws-cdk:auto-delete-objects", + "Value": "true" + } + ], + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "existingbucketPolicy3282453C": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "existingbucket2D00E3FD" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "existingbucket2D00E3FD", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "existingbucket2D00E3FD", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": [ + "s3:DeleteObject*", + "s3:GetBucket*", + "s3:List*", + "s3:PutBucketPolicy" + ], + "Effect": "Allow", + "Principal": { + "AWS": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", + "Arn" + ] + } + }, + "Resource": [ + { + "Fn::GetAtt": [ + "existingbucket2D00E3FD", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "existingbucket2D00E3FD", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + } + }, + "existingbucketAutoDeleteObjectsCustomResource3D118CE8": { + "Type": "Custom::S3AutoDeleteObjects", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", + "Arn" + ] + }, + "BucketName": { + "Ref": "existingbucket2D00E3FD" + } + }, + "DependsOn": [ + "existingbucketPolicy3282453C" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W35", + "reason": "This S3 bucket is used as the access logging bucket for another bucket" + } + ] + } + } + }, + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucketPolicyF333EAB1": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": "s3:PutObject", + "Condition": { + "ArnLike": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + } + }, + "StringEquals": { + "aws:SourceAccount": { + "Ref": "AWS::AccountId" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "logging.s3.amazonaws.com" + }, + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6", + "Arn" + ] + }, + "/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "LifecycleConfiguration": { + "Rules": [ + { + "NoncurrentVersionTransitions": [ + { + "StorageClass": "GLACIER", + "TransitionInDays": 90 + } + ], + "Status": "Enabled" + } + ] + }, + "LoggingConfiguration": { + "DestinationBucketName": { + "Ref": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6" + } + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketPolicy7C3A663B": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "translate.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:Abort*", + "s3:DeleteObject*", + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:PutObjectTagging", + "s3:PutObjectVersionTagging" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "existingbucket2D00E3FD", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "existingbucket2D00E3FD", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C", + "Roles": [ + { + "Ref": "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "LambdaFunctionServiceRolePolicy" + } + ] + }, + "Metadata": { + "guard": { + "SuppressedRules": [ + "IAM_NO_INLINE_POLICY_CHECK" + ] + } + } + }, + "testlambdatranslatestackLambdaFunctionF76CF7B7": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "\n exports.handler = async (event) => {\n console.log('Lambda function executed');\n return { statusCode: 200, body: 'Hello from Lambda!' };\n };\n " + }, + "Environment": { + "Variables": { + "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", + "SOURCE_BUCKET_NAME": { + "Ref": "existingbucket2D00E3FD" + }, + "DESTINATION_BUCKET_NAME": { + "Ref": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865" + }, + "DATA_ACCESS_ROLE_ARN": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665", + "Arn" + ] + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "TracingConfig": { + "Mode": "Active" + } + }, + "DependsOn": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions." + }, + { + "id": "W89", + "reason": "This is not a rule for the general case, just for specific use cases/industries" + }, + { + "id": "W92", + "reason": "Impossible for us to define the correct concurrency for clients" + }, + { + "id": "W58", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W89", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W92", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + } + ] + } + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "xray:PutTelemetryRecords", + "xray:PutTraceSegments" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "translate:DescribeTextTranslationJob", + "translate:ListTextTranslationJobs", + "translate:StartTextTranslationJob", + "translate:StopTextTranslationJob", + "translate:TranslateDocument", + "translate:TranslateText" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "iam:PassRole", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/manifest.json new file mode 100644 index 000000000..234c75e0c --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/manifest.json @@ -0,0 +1,1140 @@ +{ + "version": "48.0.0", + "artifacts": { + "lamtrl-existing-bucket.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "lamtrl-existing-bucket.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "lamtrl-existing-bucket": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "lamtrl-existing-bucket.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b17d16969efd848797eb99d182992714202dcbfb9fcc53376b046ce29ae84788.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "lamtrl-existing-bucket.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "lamtrl-existing-bucket.assets" + ], + "metadata": { + "/lamtrl-existing-bucket/existing-bucketLog": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "versioned": true, + "removalPolicy": "destroy", + "autoDeleteObjects": true, + "encryption": "S3_MANAGED", + "enforceSSL": true + } + } + ], + "/lamtrl-existing-bucket/existing-bucketLog/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "existingbucketLogC09B1A39" + } + ], + "/lamtrl-existing-bucket/existing-bucketLog/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-existing-bucket/existing-bucketLog/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "existingbucketLogPolicy7F8A6388" + } + ], + "/lamtrl-existing-bucket/existing-bucketLog/AutoDeleteObjectsCustomResource": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-existing-bucket/existing-bucketLog/AutoDeleteObjectsCustomResource/Default": [ + { + "type": "aws:cdk:logicalId", + "data": "existingbucketLogAutoDeleteObjectsCustomResource6B4B12B4" + } + ], + "/lamtrl-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider": [ + { + "type": "aws:cdk:is-custom-resource-handler-customResourceProvider", + "data": true + } + ], + "/lamtrl-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role": [ + { + "type": "aws:cdk:logicalId", + "data": "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" + } + ], + "/lamtrl-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler": [ + { + "type": "aws:cdk:logicalId", + "data": "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F" + } + ], + "/lamtrl-existing-bucket/existing-bucket": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "versioned": true, + "removalPolicy": "destroy", + "autoDeleteObjects": true, + "encryption": "S3_MANAGED", + "enforceSSL": true, + "serverAccessLogsBucket": "*" + } + } + ], + "/lamtrl-existing-bucket/existing-bucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "existingbucket2D00E3FD" + } + ], + "/lamtrl-existing-bucket/existing-bucket/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-existing-bucket/existing-bucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "existingbucketPolicy3282453C" + } + ], + "/lamtrl-existing-bucket/existing-bucket/AutoDeleteObjectsCustomResource": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-existing-bucket/existing-bucket/AutoDeleteObjectsCustomResource/Default": [ + { + "type": "aws:cdk:logicalId", + "data": "existingbucketAutoDeleteObjectsCustomResource3D118CE8" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "S3_MANAGED", + "versioned": true, + "blockPublicAccess": "*", + "removalPolicy": "retain", + "enforceSSL": true + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucketPolicyF333EAB1" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "S3_MANAGED", + "versioned": true, + "blockPublicAccess": "*", + "removalPolicy": "retain", + "enforceSSL": true, + "lifecycleRules": [ + { + "noncurrentVersionTransitions": [ + { + "storageClass": "*" + } + ] + } + ], + "serverAccessLogsBucket": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addLifecycleRule": [ + { + "noncurrentVersionTransitions": [ + { + "storageClass": "*" + } + ] + }, + "*", + "*" + ] + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketPolicy7C3A663B" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Importtest-lambda-translate-stack-translate-service-role": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "role": "*", + "tracing": "Active", + "runtime": "*", + "handler": "*", + "code": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*", + { + "removeInEdge": true + } + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*" + ] + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionF76CF7B7" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370" + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D" + } + ], + "/lamtrl-existing-bucket/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/lamtrl-existing-bucket/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "lamtrl-existing-bucket" + }, + "IntegDefaultTestDeployAssert4E6713E1.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "IntegDefaultTestDeployAssert4E6713E1.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "IntegDefaultTestDeployAssert4E6713E1": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "metadata": { + "/Integ/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "Integ/DefaultTest/DeployAssert" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } + } + }, + "minimumCliVersion": "2.1021.0" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/tree.json new file mode 100644 index 000000000..c1ee21ad4 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.js.snapshot/tree.json @@ -0,0 +1 @@ +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtrl-existing-bucket":{"id":"lamtrl-existing-bucket","path":"lamtrl-existing-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"existing-bucketLog":{"id":"existing-bucketLog","path":"lamtrl-existing-bucket/existing-bucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/existing-bucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-existing-bucket/existing-bucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/existing-bucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existingbucketLogC09B1A39"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existingbucketLogC09B1A39","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingbucketLogC09B1A39","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existingbucketLogC09B1A39","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingbucketLogC09B1A39","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["existingbucket2D00E3FD","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["existingbucketLogC09B1A39","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamtrl-existing-bucket/existing-bucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamtrl-existing-bucket/existing-bucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"lamtrl-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamtrl-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamtrl-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamtrl-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"existing-bucket":{"id":"existing-bucket","path":"lamtrl-existing-bucket/existing-bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/existing-bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"existingbucketLogC09B1A39"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-existing-bucket/existing-bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/existing-bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"existingbucket2D00E3FD"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["existingbucket2D00E3FD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingbucket2D00E3FD","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["existingbucket2D00E3FD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingbucket2D00E3FD","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"lamtrl-existing-bucket/existing-bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamtrl-existing-bucket/existing-bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"test-lambda-translate-stack":{"id":"test-lambda-translate-stack","path":"lamtrl-existing-bucket/test-lambda-translate-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-translate.LambdaToTranslate","version":"2.95.1"},"children":{"test-lambda-translate-stack-destination-bucketS3LoggingBucket":{"id":"test-lambda-translate-stack-destination-bucketS3LoggingBucket","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-translate-stack-destination-bucketS3Bucket":{"id":"test-lambda-translate-stack-destination-bucketS3Bucket","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3LoggingBucket7F488BE6"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-destination-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-lambda-translate-stack-translate-service-role":{"id":"test-lambda-translate-stack-translate-service-role","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"Importtest-lambda-translate-stack-translate-service-role":{"id":"Importtest-lambda-translate-stack-translate-service-role","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Importtest-lambda-translate-stack-translate-service-role","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"translate.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865","Arn"]},"/*"]]}]},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["existingbucket2D00E3FD","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["existingbucket2D00E3FD","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C","roles":[{"Ref":"testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665"}]}}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"\n exports.handler = async (event) => {\n console.log('Lambda function executed');\n return { statusCode: 200, body: 'Hello from Lambda!' };\n };\n "},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SOURCE_BUCKET_NAME":{"Ref":"existingbucket2D00E3FD"},"DESTINATION_BUCKET_NAME":{"Ref":"testlambdatranslatestacktestlambdatranslatestackdestinationbucketS3BucketF474A865"},"DATA_ACCESS_ROLE_ARN":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665","Arn"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranslatestackLambdaFunctionServiceRoleAFC37061","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["translate:DescribeTextTranslationJob","translate:ListTextTranslationJobs","translate:StartTextTranslationJob","translate:StopTextTranslationJob","translate:TranslateDocument","translate:TranslateText"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"iam:PassRole","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtrl-existing-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtrl-existing-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.ts new file mode 100644 index 000000000..30928b5d5 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-bucket.ts @@ -0,0 +1,50 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +// Imports +import { App, Stack } from "aws-cdk-lib"; +import { LambdaToTranslate } from "../lib"; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { generateIntegStackName, SetConsistentFeatureFlags } from '@aws-solutions-constructs/core'; +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import * as defaults from '@aws-solutions-constructs/core'; + +// Setup +const app = new App(); +const stack = new Stack(app, generateIntegStackName(__filename)); +SetConsistentFeatureFlags(stack); +stack.templateOptions.description = 'Integration Test for aws-lambda-translate with existing bucket'; + +// Create existing bucket +const existingBucket = defaults.CreateScrapBucket(stack, 'existing-bucket'); + +// Definitions +new LambdaToTranslate(stack, 'test-lambda-translate-stack', { + lambdaFunctionProps: { + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, + handler: 'index.handler', + code: lambda.Code.fromInline(` + exports.handler = async (event) => { + console.log('Lambda function executed'); + return { statusCode: 200, body: 'Hello from Lambda!' }; + }; + `) + }, + asyncJobs: true, + existingSourceBucketObj: existingBucket +}); + +defaults.SuppressCfnNagLambdaWarnings(stack); + +// Synth +new IntegTest(app, 'Integ', { testCases: [stack] }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json new file mode 100644 index 000000000..663c558b3 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "IntegDefaultTestDeployAssert4E6713E1 Template", + "source": { + "path": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-d8d86b35": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json new file mode 100644 index 000000000..ad9d0fb73 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/integ.json new file mode 100644 index 000000000..672cdff41 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/integ.json @@ -0,0 +1,13 @@ +{ + "version": "48.0.0", + "testCases": { + "Integ/DefaultTest": { + "stacks": [ + "lamtrl-existing-vpc" + ], + "assertionStack": "Integ/DefaultTest/DeployAssert", + "assertionStackName": "IntegDefaultTestDeployAssert4E6713E1" + } + }, + "minimumCliVersion": "2.1029.2" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/lamtrl-existing-vpc.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/lamtrl-existing-vpc.assets.json new file mode 100644 index 000000000..0af0eb486 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/lamtrl-existing-vpc.assets.json @@ -0,0 +1,34 @@ +{ + "version": "48.0.0", + "files": { + "7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200": { + "displayName": "lamtrl-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider Code", + "source": { + "path": "asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200", + "packaging": "zip" + }, + "destinations": { + "current_account-current_region-2561d6a5": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, + "e6a03b871d8d839f57db35ffaf1620490474f7110bc45159504dcf17b2aa2b32": { + "displayName": "lamtrl-existing-vpc Template", + "source": { + "path": "lamtrl-existing-vpc.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-c3a26719": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "e6a03b871d8d839f57db35ffaf1620490474f7110bc45159504dcf17b2aa2b32.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/lamtrl-existing-vpc.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/lamtrl-existing-vpc.template.json new file mode 100644 index 000000000..590e892e5 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/lamtrl-existing-vpc.template.json @@ -0,0 +1,1063 @@ +{ + "Description": "Integration Test for aws-lambda-translate with existing VPC", + "Resources": { + "Vpc8378EB38": { + "Type": "AWS::EC2::VPC", + "Properties": { + "CidrBlock": "172.168.0.0/16", + "EnableDnsHostnames": true, + "EnableDnsSupport": true, + "InstanceTenancy": "default", + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc" + } + ] + } + }, + "VpcPublicSubnet1Subnet5C2D37C4": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "172.168.0.0/18", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Public" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PublicSubnet1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W33", + "reason": "Allow Public Subnets to have MapPublicIpOnLaunch set to true" + } + ] + } + } + }, + "VpcPublicSubnet1RouteTable6C95E38E": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PublicSubnet1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcPublicSubnet1RouteTableAssociation97140677": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VpcPublicSubnet1RouteTable6C95E38E" + }, + "SubnetId": { + "Ref": "VpcPublicSubnet1Subnet5C2D37C4" + } + } + }, + "VpcPublicSubnet1DefaultRoute3DA9E72A": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "VpcIGWD7BA715C" + }, + "RouteTableId": { + "Ref": "VpcPublicSubnet1RouteTable6C95E38E" + } + }, + "DependsOn": [ + "VpcVPCGWBF912B6E" + ] + }, + "VpcPublicSubnet1EIPD7E02669": { + "Type": "AWS::EC2::EIP", + "Properties": { + "Domain": "vpc", + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PublicSubnet1" + } + ] + } + }, + "VpcPublicSubnet1NATGateway4D7517AA": { + "Type": "AWS::EC2::NatGateway", + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ + "VpcPublicSubnet1EIPD7E02669", + "AllocationId" + ] + }, + "SubnetId": { + "Ref": "VpcPublicSubnet1Subnet5C2D37C4" + }, + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PublicSubnet1" + } + ] + }, + "DependsOn": [ + "VpcPublicSubnet1DefaultRoute3DA9E72A", + "VpcPublicSubnet1RouteTableAssociation97140677" + ] + }, + "VpcPublicSubnet2Subnet691E08A3": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "172.168.64.0/18", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Public" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PublicSubnet2" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W33", + "reason": "Allow Public Subnets to have MapPublicIpOnLaunch set to true" + } + ] + } + } + }, + "VpcPublicSubnet2RouteTable94F7E489": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PublicSubnet2" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcPublicSubnet2RouteTableAssociationDD5762D8": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VpcPublicSubnet2RouteTable94F7E489" + }, + "SubnetId": { + "Ref": "VpcPublicSubnet2Subnet691E08A3" + } + } + }, + "VpcPublicSubnet2DefaultRoute97F91067": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "VpcIGWD7BA715C" + }, + "RouteTableId": { + "Ref": "VpcPublicSubnet2RouteTable94F7E489" + } + }, + "DependsOn": [ + "VpcVPCGWBF912B6E" + ] + }, + "VpcPublicSubnet2EIP3C605A87": { + "Type": "AWS::EC2::EIP", + "Properties": { + "Domain": "vpc", + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PublicSubnet2" + } + ] + } + }, + "VpcPublicSubnet2NATGateway9182C01D": { + "Type": "AWS::EC2::NatGateway", + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ + "VpcPublicSubnet2EIP3C605A87", + "AllocationId" + ] + }, + "SubnetId": { + "Ref": "VpcPublicSubnet2Subnet691E08A3" + }, + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PublicSubnet2" + } + ] + }, + "DependsOn": [ + "VpcPublicSubnet2DefaultRoute97F91067", + "VpcPublicSubnet2RouteTableAssociationDD5762D8" + ] + }, + "VpcPrivateSubnet1Subnet536B997A": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "172.168.128.0/18", + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Private" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Private" + }, + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PrivateSubnet1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcPrivateSubnet1RouteTableB2C5B500": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PrivateSubnet1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcPrivateSubnet1RouteTableAssociation70C59FA6": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VpcPrivateSubnet1RouteTableB2C5B500" + }, + "SubnetId": { + "Ref": "VpcPrivateSubnet1Subnet536B997A" + } + } + }, + "VpcPrivateSubnet1DefaultRouteBE02A9ED": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "NatGatewayId": { + "Ref": "VpcPublicSubnet1NATGateway4D7517AA" + }, + "RouteTableId": { + "Ref": "VpcPrivateSubnet1RouteTableB2C5B500" + } + } + }, + "VpcPrivateSubnet2Subnet3788AAA1": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "172.168.192.0/18", + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Private" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Private" + }, + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PrivateSubnet2" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcPrivateSubnet2RouteTableA678073B": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/PrivateSubnet2" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcPrivateSubnet2RouteTableAssociationA89CAD56": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "VpcPrivateSubnet2RouteTableA678073B" + }, + "SubnetId": { + "Ref": "VpcPrivateSubnet2Subnet3788AAA1" + } + } + }, + "VpcPrivateSubnet2DefaultRoute060D2087": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "NatGatewayId": { + "Ref": "VpcPublicSubnet2NATGateway9182C01D" + }, + "RouteTableId": { + "Ref": "VpcPrivateSubnet2RouteTableA678073B" + } + } + }, + "VpcIGWD7BA715C": { + "Type": "AWS::EC2::InternetGateway", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc" + } + ] + } + }, + "VpcVPCGWBF912B6E": { + "Type": "AWS::EC2::VPCGatewayAttachment", + "Properties": { + "InternetGatewayId": { + "Ref": "VpcIGWD7BA715C" + }, + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "VpcRestrictDefaultSecurityGroupCustomResourceC73DA2BE": { + "Type": "Custom::VpcRestrictDefaultSG", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomVpcRestrictDefaultSGCustomResourceProviderHandlerDC833E5E", + "Arn" + ] + }, + "DefaultSecurityGroupId": { + "Fn::GetAtt": [ + "Vpc8378EB38", + "DefaultSecurityGroup" + ] + }, + "Account": { + "Ref": "AWS::AccountId" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "VpcFlowLogIAMRole6A475D41": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "vpc-flow-logs.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/FlowLog" + } + ] + } + }, + "VpcFlowLogIAMRoleDefaultPolicy406FB995": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogStream", + "logs:DescribeLogStreams", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "VpcFlowLogLogGroup7B5C56B9", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "VpcFlowLogIAMRoleDefaultPolicy406FB995", + "Roles": [ + { + "Ref": "VpcFlowLogIAMRole6A475D41" + } + ] + } + }, + "VpcFlowLogLogGroup7B5C56B9": { + "Type": "AWS::Logs::LogGroup", + "Properties": { + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/FlowLog" + } + ] + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W84", + "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)" + } + ] + } + } + }, + "VpcFlowLog8FF33A73": { + "Type": "AWS::EC2::FlowLog", + "Properties": { + "DeliverLogsPermissionArn": { + "Fn::GetAtt": [ + "VpcFlowLogIAMRole6A475D41", + "Arn" + ] + }, + "LogDestinationType": "cloud-watch-logs", + "LogGroupName": { + "Ref": "VpcFlowLogLogGroup7B5C56B9" + }, + "ResourceId": { + "Ref": "Vpc8378EB38" + }, + "ResourceType": "VPC", + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc/FlowLog" + } + ], + "TrafficType": "ALL" + } + }, + "VpcTRANSLATE71E7A833": { + "Type": "AWS::EC2::VPCEndpoint", + "Properties": { + "PrivateDnsEnabled": true, + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ + "lamtrlexistingvpcTRANSLATEsecuritygroupDDE9832C", + "GroupId" + ] + } + ], + "ServiceName": { + "Fn::Join": [ + "", + [ + "com.amazonaws.", + { + "Ref": "AWS::Region" + }, + ".translate" + ] + ] + }, + "SubnetIds": [ + { + "Ref": "VpcPrivateSubnet1Subnet536B997A" + }, + { + "Ref": "VpcPrivateSubnet2Subnet3788AAA1" + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "lamtrl-existing-vpc/Vpc" + } + ], + "VpcEndpointType": "Interface", + "VpcId": { + "Ref": "Vpc8378EB38" + } + } + }, + "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + }, + "ManagedPolicyArns": [ + { + "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + } + ], + "Policies": [ + { + "PolicyName": "Inline", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "ec2:AuthorizeSecurityGroupIngress", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:RevokeSecurityGroupIngress", + "ec2:RevokeSecurityGroupEgress" + ], + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":ec2:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":security-group/", + { + "Fn::GetAtt": [ + "Vpc8378EB38", + "DefaultSecurityGroup" + ] + } + ] + ] + } + ] + } + ] + } + } + ] + }, + "Metadata": { + "guard": { + "SuppressedRules": [] + } + } + }, + "CustomVpcRestrictDefaultSGCustomResourceProviderHandlerDC833E5E": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200.zip" + }, + "Timeout": 900, + "MemorySize": 128, + "Handler": "__entrypoint__.handler", + "Role": { + "Fn::GetAtt": [ + "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Description": "Lambda function for removing all inbound/outbound rules from the VPC default security group" + }, + "DependsOn": [ + "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W89", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W92", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + } + ] + } + } + }, + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "LambdaFunctionServiceRolePolicy" + } + ] + }, + "Metadata": { + "guard": { + "SuppressedRules": [ + "IAM_NO_INLINE_POLICY_CHECK" + ] + } + } + }, + "testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "ec2:AssignPrivateIpAddresses", + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:UnassignPrivateIpAddresses" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W12", + "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC." + } + ] + } + } + }, + "testlambdatranslatestackReplaceDefaultSecurityGroupsecuritygroup5E18A780": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "lamtrl-existing-vpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W5", + "reason": "Egress of 0.0.0.0/0 is default and generally considered OK" + }, + { + "id": "W40", + "reason": "Egress IPProtocol of -1 is default and generally considered OK" + } + ] + } + } + }, + "testlambdatranslatestackLambdaFunctionF76CF7B7": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "\n exports.handler = async (event) => {\n console.log('Lambda function executed');\n return { statusCode: 200, body: 'Hello from Lambda!' };\n };\n " + }, + "Environment": { + "Variables": { + "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1" + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "TracingConfig": { + "Mode": "Active" + }, + "VpcConfig": { + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestackReplaceDefaultSecurityGroupsecuritygroup5E18A780", + "GroupId" + ] + } + ], + "SubnetIds": [ + { + "Ref": "VpcPrivateSubnet1Subnet536B997A" + }, + { + "Ref": "VpcPrivateSubnet2Subnet3788AAA1" + } + ] + } + }, + "DependsOn": [ + "testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654", + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061", + "VpcPrivateSubnet1DefaultRouteBE02A9ED", + "VpcPrivateSubnet1RouteTableAssociation70C59FA6", + "VpcPrivateSubnet2DefaultRoute060D2087", + "VpcPrivateSubnet2RouteTableAssociationA89CAD56" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions." + }, + { + "id": "W89", + "reason": "This is not a rule for the general case, just for specific use cases/industries" + }, + { + "id": "W92", + "reason": "Impossible for us to define the correct concurrency for clients" + }, + { + "id": "W58", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W89", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W92", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + } + ] + } + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "xray:PutTelemetryRecords", + "xray:PutTraceSegments" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + }, + "DependsOn": [ + "VpcPrivateSubnet1DefaultRouteBE02A9ED", + "VpcPrivateSubnet1RouteTableAssociation70C59FA6", + "VpcPrivateSubnet2DefaultRoute060D2087", + "VpcPrivateSubnet2RouteTableAssociationA89CAD56" + ] + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "translate:TranslateDocument", + "translate:TranslateText" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + }, + "DependsOn": [ + "VpcPrivateSubnet1DefaultRouteBE02A9ED", + "VpcPrivateSubnet1RouteTableAssociation70C59FA6", + "VpcPrivateSubnet2DefaultRoute060D2087", + "VpcPrivateSubnet2RouteTableAssociationA89CAD56" + ] + }, + "lamtrlexistingvpcTRANSLATEsecuritygroupDDE9832C": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "lamtrl-existing-vpc/lamtrl-existing-vpc-TRANSLATE-security-group", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "SecurityGroupIngress": [ + { + "CidrIp": { + "Fn::GetAtt": [ + "Vpc8378EB38", + "CidrBlock" + ] + }, + "Description": { + "Fn::Join": [ + "", + [ + "from ", + { + "Fn::GetAtt": [ + "Vpc8378EB38", + "CidrBlock" + ] + }, + ":443" + ] + ] + }, + "FromPort": 443, + "IpProtocol": "tcp", + "ToPort": 443 + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W5", + "reason": "Egress of 0.0.0.0/0 is default and generally considered OK" + }, + { + "id": "W40", + "reason": "Egress IPProtocol of -1 is default and generally considered OK" + } + ] + } + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/manifest.json new file mode 100644 index 000000000..115db5340 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/manifest.json @@ -0,0 +1,1333 @@ +{ + "version": "48.0.0", + "artifacts": { + "lamtrl-existing-vpc.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "lamtrl-existing-vpc.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "lamtrl-existing-vpc": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "lamtrl-existing-vpc.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e6a03b871d8d839f57db35ffaf1620490474f7110bc45159504dcf17b2aa2b32.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "lamtrl-existing-vpc.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "lamtrl-existing-vpc.assets" + ], + "metadata": { + "/lamtrl-existing-vpc/Vpc": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "enableDnsHostnames": true, + "enableDnsSupport": true, + "ipAddresses": "*" + } + } + ], + "/lamtrl-existing-vpc/Vpc/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "Vpc8378EB38" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": true, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": true, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": {} + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addNatGateway": [ + "*" + ] + } + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet1/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet1Subnet5C2D37C4" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet1/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet1RouteTable6C95E38E" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet1/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet1RouteTableAssociation97140677" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet1/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet1DefaultRoute3DA9E72A" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet1/EIP": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet1EIPD7E02669" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet1/NATGateway": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet1NATGateway4D7517AA" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet2": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": true, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": true, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": {} + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addNatGateway": [ + "*" + ] + } + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet2/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet2Subnet691E08A3" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet2/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet2RouteTable94F7E489" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet2/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet2RouteTableAssociationDD5762D8" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet2/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet2DefaultRoute97F91067" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet2/EIP": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet2EIP3C605A87" + } + ], + "/lamtrl-existing-vpc/Vpc/PublicSubnet2/NATGateway": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPublicSubnet2NATGateway9182C01D" + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": false, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": false, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": {} + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet1/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPrivateSubnet1Subnet536B997A" + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet1/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPrivateSubnet1RouteTableB2C5B500" + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet1/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPrivateSubnet1RouteTableAssociation70C59FA6" + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet1/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPrivateSubnet1DefaultRouteBE02A9ED" + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet2": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": false, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:construct", + "data": { + "availabilityZone": "*", + "vpcId": "*", + "cidrBlock": "*", + "mapPublicIpOnLaunch": false, + "ipv6CidrBlock": "*", + "assignIpv6AddressOnCreation": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": {} + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet2/Subnet": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPrivateSubnet2Subnet3788AAA1" + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet2/RouteTable": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPrivateSubnet2RouteTableA678073B" + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet2/RouteTableAssociation": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPrivateSubnet2RouteTableAssociationA89CAD56" + } + ], + "/lamtrl-existing-vpc/Vpc/PrivateSubnet2/DefaultRoute": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcPrivateSubnet2DefaultRoute060D2087" + } + ], + "/lamtrl-existing-vpc/Vpc/IGW": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcIGWD7BA715C" + } + ], + "/lamtrl-existing-vpc/Vpc/VPCGW": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcVPCGWBF912B6E" + } + ], + "/lamtrl-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcRestrictDefaultSecurityGroupCustomResourceC73DA2BE" + } + ], + "/lamtrl-existing-vpc/Vpc/FlowLog": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "resourceType": "*" + } + } + ], + "/lamtrl-existing-vpc/Vpc/FlowLog/IAMRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "roleName": "*", + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/lamtrl-existing-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-existing-vpc/Vpc/FlowLog/IAMRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcFlowLogIAMRole6A475D41" + } + ], + "/lamtrl-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], + "/lamtrl-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcFlowLogIAMRoleDefaultPolicy406FB995" + } + ], + "/lamtrl-existing-vpc/Vpc/FlowLog/LogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-existing-vpc/Vpc/FlowLog/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcFlowLogLogGroup7B5C56B9" + } + ], + "/lamtrl-existing-vpc/Vpc/FlowLog/FlowLog": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcFlowLog8FF33A73" + } + ], + "/lamtrl-existing-vpc/Vpc/TRANSLATE": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "vpc": "*", + "service": { + "name": "*", + "port": "*", + "privateDnsDefault": true + }, + "securityGroups": [ + "*" + ] + } + } + ], + "/lamtrl-existing-vpc/Vpc/TRANSLATE/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "VpcTRANSLATE71E7A833" + } + ], + "/lamtrl-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider": [ + { + "type": "aws:cdk:is-custom-resource-handler-customResourceProvider", + "data": true + } + ], + "/lamtrl-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role": [ + { + "type": "aws:cdk:logicalId", + "data": "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0" + } + ], + "/lamtrl-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler": [ + { + "type": "aws:cdk:logicalId", + "data": "CustomVpcRestrictDefaultSGCustomResourceProviderHandlerDC833E5E" + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654" + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "vpc": "*", + "allowAllOutbound": true + } + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackReplaceDefaultSecurityGroupsecuritygroup5E18A780" + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "role": "*", + "tracing": "Active", + "runtime": "*", + "handler": "*", + "code": "*", + "securityGroups": [ + "*" + ], + "vpc": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*", + { + "removeInEdge": true + } + ] + } + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionF76CF7B7" + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58" + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370" + } + ], + "/lamtrl-existing-vpc/lamtrl-existing-vpc-TRANSLATE-security-group": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "vpc": "*", + "allowAllOutbound": true + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addIngressRule": [ + { + "canInlineRule": true, + "connections": "*", + "uniqueId": "*" + }, + {}, + "*", + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addIngressRule": [ + { + "canInlineRule": true, + "connections": "*", + "uniqueId": "*" + }, + {}, + "*", + false + ] + } + } + ], + "/lamtrl-existing-vpc/lamtrl-existing-vpc-TRANSLATE-security-group/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "lamtrlexistingvpcTRANSLATEsecuritygroupDDE9832C" + } + ], + "/lamtrl-existing-vpc/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/lamtrl-existing-vpc/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "lamtrl-existing-vpc" + }, + "IntegDefaultTestDeployAssert4E6713E1.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "IntegDefaultTestDeployAssert4E6713E1.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "IntegDefaultTestDeployAssert4E6713E1": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "metadata": { + "/Integ/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "Integ/DefaultTest/DeployAssert" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } + } + }, + "minimumCliVersion": "2.1021.0" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/tree.json new file mode 100644 index 000000000..c5f191b89 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.js.snapshot/tree.json @@ -0,0 +1 @@ +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtrl-existing-vpc":{"id":"lamtrl-existing-vpc","path":"lamtrl-existing-vpc","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lamtrl-existing-vpc/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"lamtrl-existing-vpc/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamtrl-existing-vpc/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtrl-existing-vpc/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtrl-existing-vpc/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtrl-existing-vpc/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamtrl-existing-vpc/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"lamtrl-existing-vpc/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"lamtrl-existing-vpc/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"lamtrl-existing-vpc/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"lamtrl-existing-vpc/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtrl-existing-vpc/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtrl-existing-vpc/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtrl-existing-vpc/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamtrl-existing-vpc/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}},"EIP":{"id":"EIP","path":"lamtrl-existing-vpc/Vpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"lamtrl-existing-vpc/Vpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet2EIP3C605A87","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"},"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"lamtrl-existing-vpc/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet2NATGateway9182C01D"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"lamtrl-existing-vpc/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"lamtrl-existing-vpc/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lamtrl-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lamtrl-existing-vpc/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lamtrl-existing-vpc/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lamtrl-existing-vpc/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lamtrl-existing-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtrl-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lamtrl-existing-vpc/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lamtrl-existing-vpc/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc/FlowLog"}],"trafficType":"ALL"}}}}},"TRANSLATE":{"id":"TRANSLATE","path":"lamtrl-existing-vpc/Vpc/TRANSLATE","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint","version":"2.223.0","metadata":[{"vpc":"*","service":{"name":"*","port":"*","privateDnsDefault":true},"securityGroups":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/Vpc/TRANSLATE/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCEndpoint","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCEndpoint","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lamtrl-existing-vpc/Vpc"}],"privateDnsEnabled":true,"securityGroupIds":[{"Fn::GetAtt":["lamtrlexistingvpcTRANSLATEsecuritygroupDDE9832C","GroupId"]}],"serviceName":{"Fn::Join":["",["com.amazonaws.",{"Ref":"AWS::Region"},".translate"]]},"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"vpcEndpointType":"Interface","vpcId":{"Ref":"Vpc8378EB38"}}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lamtrl-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lamtrl-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lamtrl-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lamtrl-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-lambda-translate-stack":{"id":"test-lambda-translate-stack","path":"lamtrl-existing-vpc/test-lambda-translate-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-translate.LambdaToTranslate","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"addToPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ec2:AssignPrivateIpAddresses","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:UnassignPrivateIpAddresses"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctionServiceRoleDefaultPolicyE2920654","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}}}},"ReplaceDefaultSecurityGroup-security-group":{"id":"ReplaceDefaultSecurityGroup-security-group","path":"lamtrl-existing-vpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamtrl-existing-vpc/test-lambda-translate-stack/ReplaceDefaultSecurityGroup-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","securityGroups":["*"],"vpc":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"\n exports.handler = async (event) => {\n console.log('Lambda function executed');\n return { statusCode: 200, body: 'Hello from Lambda!' };\n };\n "},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranslatestackLambdaFunctionServiceRoleAFC37061","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"},"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["testlambdatranslatestackReplaceDefaultSecurityGroupsecuritygroup5E18A780","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["translate:TranslateDocument","translate:TranslateText"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}}}}}},"lamtrl-existing-vpc-TRANSLATE-security-group":{"id":"lamtrl-existing-vpc-TRANSLATE-security-group","path":"lamtrl-existing-vpc/lamtrl-existing-vpc-TRANSLATE-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*","*"]},{"addIngressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-existing-vpc/lamtrl-existing-vpc-TRANSLATE-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lamtrl-existing-vpc/lamtrl-existing-vpc-TRANSLATE-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"securityGroupIngress":[{"cidrIp":{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},"ipProtocol":"tcp","fromPort":443,"toPort":443,"description":{"Fn::Join":["",["from ",{"Fn::GetAtt":["Vpc8378EB38","CidrBlock"]},":443"]]}}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtrl-existing-vpc/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtrl-existing-vpc/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.ts new file mode 100644 index 000000000..6048036cc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-existing-vpc.ts @@ -0,0 +1,49 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +// Imports +import { App, Stack } from "aws-cdk-lib"; +import { LambdaToTranslate } from "../lib"; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { generateIntegStackName, SetConsistentFeatureFlags } from '@aws-solutions-constructs/core'; +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import * as defaults from '@aws-solutions-constructs/core'; + +// Setup +const app = new App(); +const stack = new Stack(app, generateIntegStackName(__filename)); +SetConsistentFeatureFlags(stack); +stack.templateOptions.description = 'Integration Test for aws-lambda-translate with existing VPC'; + +// Create existing VPC +const existingVpc = defaults.getTestVpc(stack); + +// Definitions +new LambdaToTranslate(stack, 'test-lambda-translate-stack', { + lambdaFunctionProps: { + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, + handler: 'index.handler', + code: lambda.Code.fromInline(` + exports.handler = async (event) => { + console.log('Lambda function executed'); + return { statusCode: 200, body: 'Hello from Lambda!' }; + }; + `) + }, + existingVpc +}); + +defaults.SuppressCfnNagLambdaWarnings(stack); + +// Synth +new IntegTest(app, 'Integ', { testCases: [stack] }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json new file mode 100644 index 000000000..663c558b3 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "IntegDefaultTestDeployAssert4E6713E1 Template", + "source": { + "path": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-d8d86b35": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json new file mode 100644 index 000000000..ad9d0fb73 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/integ.json new file mode 100644 index 000000000..59d0de0a3 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/integ.json @@ -0,0 +1,13 @@ +{ + "version": "48.0.0", + "testCases": { + "Integ/DefaultTest": { + "stacks": [ + "lamtrl-no-arguments" + ], + "assertionStack": "Integ/DefaultTest/DeployAssert", + "assertionStackName": "IntegDefaultTestDeployAssert4E6713E1" + } + }, + "minimumCliVersion": "2.1029.2" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/lamtrl-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/lamtrl-no-arguments.assets.json new file mode 100644 index 000000000..5b8c17dc8 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/lamtrl-no-arguments.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "88a5c225aad8dca8fa274d0fc379185f87965f34122346cdd44d285caaaef958": { + "displayName": "lamtrl-no-arguments Template", + "source": { + "path": "lamtrl-no-arguments.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-c6f7d770": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "88a5c225aad8dca8fa274d0fc379185f87965f34122346cdd44d285caaaef958.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/lamtrl-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/lamtrl-no-arguments.template.json new file mode 100644 index 000000000..547f7b466 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/lamtrl-no-arguments.template.json @@ -0,0 +1,206 @@ +{ + "Description": "Integration Test for aws-lambda-translate with no arguments", + "Resources": { + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "LambdaFunctionServiceRolePolicy" + } + ] + }, + "Metadata": { + "guard": { + "SuppressedRules": [ + "IAM_NO_INLINE_POLICY_CHECK" + ] + } + } + }, + "testlambdatranslatestackLambdaFunctionF76CF7B7": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => { console.log(event); return {'statusCode': 200, 'body': ''}; }" + }, + "Environment": { + "Variables": { + "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1" + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "TracingConfig": { + "Mode": "Active" + } + }, + "DependsOn": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions." + }, + { + "id": "W89", + "reason": "This is not a rule for the general case, just for specific use cases/industries" + }, + { + "id": "W92", + "reason": "Impossible for us to define the correct concurrency for clients" + }, + { + "id": "W58", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W89", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W92", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + } + ] + } + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "xray:PutTelemetryRecords", + "xray:PutTraceSegments" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "translate:TranslateDocument", + "translate:TranslateText" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/manifest.json new file mode 100644 index 000000000..8a7490cae --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/manifest.json @@ -0,0 +1,763 @@ +{ + "version": "48.0.0", + "artifacts": { + "lamtrl-no-arguments.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "lamtrl-no-arguments.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "lamtrl-no-arguments": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "lamtrl-no-arguments.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/88a5c225aad8dca8fa274d0fc379185f87965f34122346cdd44d285caaaef958.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "lamtrl-no-arguments.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "lamtrl-no-arguments.assets" + ], + "metadata": { + "/lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ], + "/lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "role": "*", + "tracing": "Active", + "code": "*", + "runtime": "*", + "handler": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*", + { + "removeInEdge": true + } + ] + } + } + ], + "/lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionF76CF7B7" + } + ], + "/lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58" + } + ], + "/lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370" + } + ], + "/lamtrl-no-arguments/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/lamtrl-no-arguments/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "lamtrl-no-arguments" + }, + "IntegDefaultTestDeployAssert4E6713E1.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "IntegDefaultTestDeployAssert4E6713E1.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "IntegDefaultTestDeployAssert4E6713E1": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "metadata": { + "/Integ/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "Integ/DefaultTest/DeployAssert" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } + } + }, + "minimumCliVersion": "2.1021.0" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/tree.json new file mode 100644 index 000000000..811df6ab6 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.js.snapshot/tree.json @@ -0,0 +1 @@ +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtrl-no-arguments":{"id":"lamtrl-no-arguments","path":"lamtrl-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-translate-stack":{"id":"test-lambda-translate-stack","path":"lamtrl-no-arguments/test-lambda-translate-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-translate.LambdaToTranslate","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => { console.log(event); return {'statusCode': 200, 'body': ''}; }"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranslatestackLambdaFunctionServiceRoleAFC37061","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-no-arguments/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["translate:TranslateDocument","translate:TranslateText"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtrl-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtrl-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.ts new file mode 100644 index 000000000..21835878b --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-no-arguments.ts @@ -0,0 +1,40 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +// Imports +import { App, Stack } from "aws-cdk-lib"; +import { LambdaToTranslate } from "../lib"; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { generateIntegStackName, SetConsistentFeatureFlags } from '@aws-solutions-constructs/core'; +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import * as defaults from '@aws-solutions-constructs/core'; + +// Setup +const app = new App(); +const stack = new Stack(app, generateIntegStackName(__filename)); +SetConsistentFeatureFlags(stack); +stack.templateOptions.description = 'Integration Test for aws-lambda-translate with no arguments'; + +// Definitions +new LambdaToTranslate(stack, 'test-lambda-translate-stack', { + lambdaFunctionProps: { + code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'), + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, + handler: 'index.handler' + }, +}); + +defaults.SuppressCfnNagLambdaWarnings(stack); + +// Synth +new IntegTest(app, 'Integ', { testCases: [stack] }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json new file mode 100644 index 000000000..663c558b3 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "IntegDefaultTestDeployAssert4E6713E1 Template", + "source": { + "path": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-d8d86b35": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json new file mode 100644 index 000000000..ad9d0fb73 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/integ.json new file mode 100644 index 000000000..bc23ee1c6 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/integ.json @@ -0,0 +1,13 @@ +{ + "version": "48.0.0", + "testCases": { + "Integ/DefaultTest": { + "stacks": [ + "lamtrl-same-bucket" + ], + "assertionStack": "Integ/DefaultTest/DeployAssert", + "assertionStackName": "IntegDefaultTestDeployAssert4E6713E1" + } + }, + "minimumCliVersion": "2.1029.2" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/lamtrl-same-bucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/lamtrl-same-bucket.assets.json new file mode 100644 index 000000000..80b507e73 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/lamtrl-same-bucket.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "d63e10091cdd5d560a82179f171f540f1ecbab3a7c97fc326aca65ab5144d541": { + "displayName": "lamtrl-same-bucket Template", + "source": { + "path": "lamtrl-same-bucket.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-0fefd20a": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "d63e10091cdd5d560a82179f171f540f1ecbab3a7c97fc326aca65ab5144d541.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/lamtrl-same-bucket.template.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/lamtrl-same-bucket.template.json new file mode 100644 index 000000000..051e44144 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/lamtrl-same-bucket.template.json @@ -0,0 +1,526 @@ +{ + "Description": "Integration Test for aws-lambda-translate with useSameBucket", + "Resources": { + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W35", + "reason": "This S3 bucket is used as the access logging bucket for another bucket" + } + ] + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketPolicy308DE110": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": "s3:PutObject", + "Condition": { + "ArnLike": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + } + }, + "StringEquals": { + "aws:SourceAccount": { + "Ref": "AWS::AccountId" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "logging.s3.amazonaws.com" + }, + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4", + "Arn" + ] + }, + "/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "LifecycleConfiguration": { + "Rules": [ + { + "NoncurrentVersionTransitions": [ + { + "StorageClass": "GLACIER", + "TransitionInDays": 90 + } + ], + "Status": "Enabled" + } + ] + }, + "LoggingConfiguration": { + "DestinationBucketName": { + "Ref": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4" + } + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3BucketPolicy8D30C760": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "translate.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:Abort*", + "s3:DeleteObject*", + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:PutObjectTagging", + "s3:PutObjectVersionTagging" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C", + "Roles": [ + { + "Ref": "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "LambdaFunctionServiceRolePolicy" + } + ] + }, + "Metadata": { + "guard": { + "SuppressedRules": [ + "IAM_NO_INLINE_POLICY_CHECK" + ] + } + } + }, + "testlambdatranslatestackLambdaFunctionF76CF7B7": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => { console.log(event); return {'statusCode': 200, 'body': ''}; }" + }, + "Environment": { + "Variables": { + "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", + "SOURCE_BUCKET_NAME": { + "Ref": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7" + }, + "DESTINATION_BUCKET_NAME": { + "Ref": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7" + }, + "DATA_ACCESS_ROLE_ARN": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665", + "Arn" + ] + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "TracingConfig": { + "Mode": "Active" + } + }, + "DependsOn": [ + "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions." + }, + { + "id": "W89", + "reason": "This is not a rule for the general case, just for specific use cases/industries" + }, + { + "id": "W92", + "reason": "Impossible for us to define the correct concurrency for clients" + }, + { + "id": "W58", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W89", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + }, + { + "id": "W92", + "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" + } + ] + } + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "xray:PutTelemetryRecords", + "xray:PutTraceSegments" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "translate:DescribeTextTranslationJob", + "translate:ListTextTranslationJobs", + "translate:StartTextTranslationJob", + "translate:StopTextTranslationJob", + "translate:TranslateDocument", + "translate:TranslateText" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + }, + "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "iam:PassRole", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D", + "Roles": [ + { + "Ref": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ] + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/manifest.json new file mode 100644 index 000000000..162e5e7ca --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/manifest.json @@ -0,0 +1,1033 @@ +{ + "version": "48.0.0", + "artifacts": { + "lamtrl-same-bucket.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "lamtrl-same-bucket.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "lamtrl-same-bucket": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "lamtrl-same-bucket.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d63e10091cdd5d560a82179f171f540f1ecbab3a7c97fc326aca65ab5144d541.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "lamtrl-same-bucket.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "lamtrl-same-bucket.assets" + ], + "metadata": { + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "S3_MANAGED", + "versioned": true, + "blockPublicAccess": "*", + "removalPolicy": "retain", + "enforceSSL": true + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketPolicy308DE110" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "S3_MANAGED", + "versioned": true, + "blockPublicAccess": "*", + "removalPolicy": "retain", + "enforceSSL": true, + "lifecycleRules": [ + { + "noncurrentVersionTransitions": [ + { + "storageClass": "*" + } + ] + } + ], + "serverAccessLogsBucket": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addLifecycleRule": [ + { + "noncurrentVersionTransitions": [ + { + "storageClass": "*" + } + ] + }, + "*", + "*" + ] + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "bucket": "*" + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Policy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacksourcebucketS3BucketPolicy8D30C760" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Importtest-lambda-translate-stack-translate-service-role": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionServiceRoleAFC37061" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "role": "*", + "tracing": "Active", + "code": "*", + "runtime": "*", + "handler": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*", + { + "removeInEdge": true + } + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addEnvironment": [ + "*", + "*" + ] + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctionF76CF7B7" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370" + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], + "/lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D" + } + ], + "/lamtrl-same-bucket/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/lamtrl-same-bucket/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "lamtrl-same-bucket" + }, + "IntegDefaultTestDeployAssert4E6713E1.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "IntegDefaultTestDeployAssert4E6713E1.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "IntegDefaultTestDeployAssert4E6713E1": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "IntegDefaultTestDeployAssert4E6713E1.assets" + ], + "metadata": { + "/Integ/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "Integ/DefaultTest/DeployAssert" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } + } + }, + "minimumCliVersion": "2.1021.0" +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/tree.json new file mode 100644 index 000000000..1ad5e5840 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.js.snapshot/tree.json @@ -0,0 +1 @@ +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lamtrl-same-bucket":{"id":"lamtrl-same-bucket","path":"lamtrl-same-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-lambda-translate-stack":{"id":"test-lambda-translate-stack","path":"lamtrl-same-bucket/test-lambda-translate-stack","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-translate.LambdaToTranslate","version":"2.95.1"},"children":{"test-lambda-translate-stack-source-bucketS3LoggingBucket":{"id":"test-lambda-translate-stack-source-bucketS3LoggingBucket","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test-lambda-translate-stack-source-bucketS3Bucket":{"id":"test-lambda-translate-stack-source-bucketS3Bucket","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"retain","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"testlambdatranslatestacktestlambdatranslatestacksourcebucketS3LoggingBucketEF52D1D4"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-source-bucketS3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}}}},"test-lambda-translate-stack-translate-service-role":{"id":"test-lambda-translate-stack-translate-service-role","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"Importtest-lambda-translate-stack-translate-service-role":{"id":"Importtest-lambda-translate-stack-translate-service-role","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Importtest-lambda-translate-stack-translate-service-role","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"translate.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/test-lambda-translate-stack-translate-service-role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["s3:Abort*","s3:DeleteObject*","s3:GetBucket*","s3:GetObject*","s3:List*","s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestacktestlambdatranslatestacktranslateserviceroleDefaultPolicy33BB4F3C","roles":[{"Ref":"testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665"}]}}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]},{"addEnvironment":["*","*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => { console.log(event); return {'statusCode': 200, 'body': ''}; }"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1","SOURCE_BUCKET_NAME":{"Ref":"testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7"},"DESTINATION_BUCKET_NAME":{"Ref":"testlambdatranslatestacktestlambdatranslatestacksourcebucketS3Bucket51973FD7"},"DATA_ACCESS_ROLE_ARN":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665","Arn"]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testlambdatranslatestackLambdaFunctionServiceRoleAFC37061","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole07975DC58","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}},"inlinePolicyAddedToExecutionRole-1":{"id":"inlinePolicyAddedToExecutionRole-1","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["translate:DescribeTextTranslationJob","translate:ListTextTranslationJobs","translate:StartTextTranslationJob","translate:StopTextTranslationJob","translate:TranslateDocument","translate:TranslateText"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole1C55F8370","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}},"inlinePolicyAddedToExecutionRole-2":{"id":"inlinePolicyAddedToExecutionRole-2","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"lamtrl-same-bucket/test-lambda-translate-stack/LambdaFunction/inlinePolicyAddedToExecutionRole-2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"iam:PassRole","Effect":"Allow","Resource":{"Fn::GetAtt":["testlambdatranslatestacktestlambdatranslatestacktranslateservicerole8DA2B665","Arn"]}}],"Version":"2012-10-17"},"policyName":"testlambdatranslatestackLambdaFunctioninlinePolicyAddedToExecutionRole293B3974D","roles":[{"Ref":"testlambdatranslatestackLambdaFunctionServiceRoleAFC37061"}]}}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lamtrl-same-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lamtrl-same-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.ts new file mode 100644 index 000000000..9737420d6 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/integ.lamtrl-same-bucket.ts @@ -0,0 +1,42 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +// Imports +import { App, Stack } from "aws-cdk-lib"; +import { LambdaToTranslate } from "../lib"; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { generateIntegStackName, SetConsistentFeatureFlags } from '@aws-solutions-constructs/core'; +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import * as defaults from '@aws-solutions-constructs/core'; + +// Setup +const app = new App(); +const stack = new Stack(app, generateIntegStackName(__filename)); +SetConsistentFeatureFlags(stack); +stack.templateOptions.description = 'Integration Test for aws-lambda-translate with useSameBucket'; + +// Definitions +new LambdaToTranslate(stack, 'test-lambda-translate-stack', { + lambdaFunctionProps: { + code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'), + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, + handler: 'index.handler' + }, + useSameBucket: true, + asyncJobs: true +}); + +defaults.SuppressCfnNagLambdaWarnings(stack); + +// Synth +new IntegTest(app, 'Integ', { testCases: [stack] }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/lambda-translate.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/lambda-translate.test.ts new file mode 100644 index 000000000..500341b54 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-translate/test/lambda-translate.test.ts @@ -0,0 +1,355 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { App, Stack } from "aws-cdk-lib"; +import { LambdaToTranslate } from "../lib"; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { Match, Template } from 'aws-cdk-lib/assertions'; +import * as defaults from '@aws-solutions-constructs/core'; + +function deployTestConstructStructure(stack: Stack, props?: any) { + return new LambdaToTranslate(stack, 'test-lambda-translate', { + lambdaFunctionProps: { + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, + handler: 'index.handler', + code: lambda.Code.fromInline('exports.handler = async () => {};') + }, + ...props + }); +} + +test('Test deployment with no optional parameters', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const construct = deployTestConstructStructure(stack); + + expect(construct.lambdaFunction).toBeDefined(); + expect(construct.sourceBucket).not.toBeDefined(); + expect(construct.destinationBucket).not.toBeDefined(); + expect(construct.sourceBucketInterface).not.toBeDefined(); + expect(construct.destinationBucketInterface).not.toBeDefined(); + expect(construct.vpc).not.toBeDefined(); + + const template = Template.fromStack(stack); + template.hasResourceProperties('AWS::Lambda::Function', { + Runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_STRING + }); + + // Check default Translate permissions + template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: Match.arrayWith([ + Match.objectLike({ + Effect: 'Allow', + Action: ['translate:TranslateText', 'translate:TranslateDocument'] + }) + ]) + } + }); + + // Ensure we didn't create the async jobs infrastructure + template.resourceCountIs("AWS::IAM::Role", 1); + template.resourceCountIs('AWS::S3::Bucket', 0); + template.resourcePropertiesCountIs("AWS::Lambda::Function", { + Environment: Match.objectLike({ + Variables: { + "SOURCE_BUCKET_NAME": Match.anyValue() + } + }), + }, 0); +}); + +test('Test deployment with asyncJobs enabled', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const construct = deployTestConstructStructure(stack, { asyncJobs: true }); + + expect(construct.lambdaFunction).toBeDefined(); + expect(construct.sourceBucket).toBeDefined(); + expect(construct.destinationBucket).toBeDefined(); + expect(construct.sourceBucketInterface).toBeDefined(); + expect(construct.destinationBucketInterface).toBeDefined(); + expect(construct.sourceLoggingBucket).toBeDefined(); + expect(construct.destinationLoggingBucket).toBeDefined(); + + const template = Template.fromStack(stack); + + template.resourceCountIs('AWS::S3::Bucket', 4); // 2 main buckets + 2 logging buckets + + // Check lambda functon permissions + template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: Match.arrayWith([ + Match.objectLike({ + Effect: 'Allow', + Action: Match.arrayWith([ + "translate:TranslateText", + "translate:TranslateDocument", + "translate:DescribeTextTranslationJob", + "translate:ListTextTranslationJobs", + "translate:StartTextTranslationJob", + "translate:StopTextTranslationJob" + ]), + Resource: '*' + }), + Match.objectLike({ + Effect: 'Allow', + Action: "iam:PassRole", + Resource: { + "Fn::GetAtt": [ + "testlambdatranslatetestlambdatranslatetranslateservicerole4A23BEA1", + "Arn" + ] + } + }) + ]) + }, + Roles: [ + { + Ref: Match.stringLikeRegexp("testlambdatranslateLambdaFunctionServiceRole.*") + } + ] + }); + + // Check translate service permissions + template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: Match.arrayWith([ + Match.objectLike({ + Effect: 'Allow', + Action: Match.arrayWith([ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:PutObjectTagging", + "s3:PutObjectVersionTagging", + "s3:Abort*" + ]) + }) + ]) + }, + Roles: [ + { + Ref: Match.stringLikeRegexp("testlambdatranslatetestlambdatranslatetranslateservicerole.*") + }] + }); + + // Check that there are 2 separate policies + template.resourceCountIs("AWS::IAM::Policy", 2); + + // Check environment variables + template.hasResourceProperties('AWS::Lambda::Function', { + Environment: { + Variables: Match.objectLike({ + SOURCE_BUCKET_NAME: Match.anyValue(), + DESTINATION_BUCKET_NAME: Match.anyValue(), + DATA_ACCESS_ROLE_ARN: Match.anyValue(), + }) + } + }); +}); + +test('Test deployment with asyncJobs and useSameBucket', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const construct = deployTestConstructStructure(stack, { + asyncJobs: true, + useSameBucket: true + }); + + expect(construct.sourceBucketInterface).toBe(construct.destinationBucketInterface); + + const template = Template.fromStack(stack); + template.resourceCountIs('AWS::S3::Bucket', 2); // 1 main bucket + 1 logging bucket +}); + +test('Test deployment with VPC', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const construct = deployTestConstructStructure(stack, { deployVpc: true }); + + expect(construct.vpc).toBeDefined(); + + const template = Template.fromStack(stack); + + template.hasResourceProperties('AWS::EC2::VPC', {}); + template.hasResourceProperties('AWS::EC2::VPCEndpoint', { + ServiceName: { + "Fn::Join": [ + "", + [ + "com.amazonaws.", + { + Ref: "AWS::Region" + }, + ".translate" + ] + ] + } + }); +}); + +test('Test deployment with VPC and asyncJobs', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const construct = deployTestConstructStructure(stack, { + deployVpc: true, + asyncJobs: true + }); + + expect(construct.vpc).toBeDefined(); + + const template = Template.fromStack(stack); + + // Should have both Translate and S3 endpoints + template.hasResourceProperties('AWS::EC2::VPCEndpoint', { + ServiceName: { + "Fn::Join": [ + "", + [ + "com.amazonaws.", + { + Ref: "AWS::Region" + }, + ".translate" + ] + ] + } + }); + + template.hasResourceProperties('AWS::EC2::VPCEndpoint', { + ServiceName: { + "Fn::Join": [ + "", + [ + "com.amazonaws.", + { + Ref: "AWS::Region" + }, + ".s3" + ] + ] + } + }); +}); + +test('Test deployment with additionalPermissions', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + deployTestConstructStructure(stack, { + additionalPermissions: ['translate:CreateParallelData', 'translate:DeleteParallelData'] + }); + + const template = Template.fromStack(stack); + + template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: Match.arrayWith([ + Match.objectLike({ + Effect: 'Allow', + Action: Match.arrayWith([ + 'translate:TranslateText', + 'translate:TranslateDocument', + 'translate:CreateParallelData', + 'translate:DeleteParallelData' + ]) + }) + ]) + } + }); +}); + +test('Test custom environment variable names', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + deployTestConstructStructure(stack, { + asyncJobs: true, + sourceBucketEnvironmentVariableName: 'CUSTOM_SOURCE', + destinationBucketEnvironmentVariableName: 'CUSTOM_DEST', + dataAccessRoleArnEnvironmentVariableName: 'CUSTOM_ARN' + }); + + const template = Template.fromStack(stack); + + template.hasResourceProperties('AWS::Lambda::Function', { + Environment: { + Variables: Match.objectLike({ + CUSTOM_SOURCE: Match.anyValue(), + CUSTOM_DEST: Match.anyValue(), + CUSTOM_ARN: Match.anyValue() + }) + } + }); +}); + +test('Test deployment with existing VPC', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const existingVpc = defaults.getTestVpc(stack); + + const construct = deployTestConstructStructure(stack, { + existingVpc + }); + + expect(construct.vpc).toBe(existingVpc); + + const template = Template.fromStack(stack); + template.hasResourceProperties('AWS::EC2::VPCEndpoint', { + ServiceName: { + "Fn::Join": [ + "", + [ + "com.amazonaws.", + { + Ref: "AWS::Region" + }, + ".translate" + ] + ] + } + }); +}); + +test('Test deployment with existing S3 buckets', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const sourceBucket = defaults.CreateScrapBucket(stack, 'existing-source'); + const destinationBucket = defaults.CreateScrapBucket(stack, 'existing-destination'); + + const construct = deployTestConstructStructure(stack, { + asyncJobs: true, + existingSourceBucketObj: sourceBucket, + existingDestinationBucketObj: destinationBucket + }); + + expect(construct.sourceBucket).not.toBeDefined(); + expect(construct.destinationBucket).not.toBeDefined(); + expect(construct.sourceBucketInterface).toBe(sourceBucket); + expect(construct.destinationBucketInterface).toBe(destinationBucket); + + const template = Template.fromStack(stack); + template.resourceCountIs('AWS::S3::Bucket', 4); +}); diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/README.adoc index a4df3adbe..2060b0c09 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/README.adoc @@ -66,7 +66,7 @@ new OpenApiGatewayToLambda(this, 'OpenApiGatewayToLambda', { { id: 'MessagesHandler', lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/messages-lambda`), } @@ -95,7 +95,7 @@ class TestStack(Stack): api_definition_asset = s3_assets.Asset(self, "ApiDefinitionAsset", path="./openapi/apiDefinition.yaml") api_integration = ApiIntegration(id="MessagesHandler", lambda_function_props={ - "runtime": lambda_.Runtime.NODEJS_20_X, + "runtime": lambda_.Runtime.NODEJS_22_X, "handler": "index.handler", "code": lambda_.Code.from_asset("./messages-lambda") }) @@ -124,14 +124,14 @@ import software.amazon.awscdk.StackProps; import java.util.Collections; -import static software.amazon.awscdk.services.lambda.Runtime.NODEJS_20_X; +import static software.amazon.awscdk.services.lambda.Runtime.NODEJS_22_X; final Asset apiDefinitionAsset = new Asset(this, "ApiDefinition", AssetProps.builder().path("openapi/apiDefinition.yaml").build()); final ApiIntegration apiIntegration = ApiIntegration.builder() .id("MessagesHandler") .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(NODEJS_20_X) + .runtime(NODEJS_22_X) .code(Code.fromAsset("messages-lambda")) .handler("index.handler") .build()) @@ -254,7 +254,7 @@ const apiIntegrations: ApiIntegration[] = [ { id: 'MessagesHandler', lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/messages-lambda`), } @@ -262,7 +262,7 @@ const apiIntegrations: ApiIntegration[] = [ { id: 'PhotosHandler', existingLambdaObj: new lambda.Function(this, 'PhotosLambda', { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/photos-lambda`), }) diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs new file mode 100644 index 000000000..55e35c614 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled POST from messages lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled GET from messages lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs new file mode 100644 index 000000000..220496109 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled POST from photos lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled GET from photos lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js new file mode 100644 index 000000000..ebaf0b809 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js @@ -0,0 +1,71 @@ +"use strict"; +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.handler = void 0; +exports.replaceTarget = replaceTarget; +const client_s3_1 = require("@aws-sdk/client-s3"); +const crypto = require("crypto"); +const s3Client = new client_s3_1.S3Client({ region: process.env.REGION }); +const handler = async (event, context) => { + let status = 'SUCCESS'; + let responseData = {}; + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + const getObjectResponse = await s3Client.send(new client_s3_1.GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + let template = await getObjectResponse.Body?.transformToString(); + templateValues.forEach((templateValue) => { + template = replaceTarget(template, templateValue); + }); + await s3Client.send(new client_s3_1.PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + responseData = { + TemplateOutputKey: templateOutputKey + }; + } + catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; +exports.handler = handler; +function replaceTarget(template, templateValue) { + template = template?.replace(new RegExp(`\\b${templateValue.id}\\b`, 'g'), templateValue.value); + return template; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQTRESCxzQ0FNQztBQWhFRCxrREFBa0Y7QUFDbEYsaUNBQWlDO0FBRWpDLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFdkQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQVUsRUFBRSxPQUFZLEVBQUUsRUFBRTtJQUN4RCxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDdkIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRXRCLDBGQUEwRjtJQUMxRiw0RkFBNEY7SUFDNUYsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUMxRixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUN6RSxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuRSxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztZQUMzRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ2pFLE1BQU0sRUFBRSxtQkFBbUI7Z0JBQzNCLEdBQUcsRUFBRSxnQkFBZ0I7YUFDdEIsQ0FBQyxDQUFDLENBQUM7WUFFSixJQUFJLFFBQVEsR0FBRyxNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1lBRWpFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFrQixFQUFFLEVBQUU7Z0JBQzVDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ3ZDLE1BQU0sRUFBRSxvQkFBb0I7Z0JBQzVCLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQyxDQUFDLENBQUM7WUFFSixZQUFZLEdBQUc7Z0JBQ2IsaUJBQWlCLEVBQUUsaUJBQWlCO2FBQ3JDLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFDbEIsWUFBWSxHQUFHO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3BDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsYUFBYTtRQUNyRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7UUFDMUMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQW5EVyxRQUFBLE9BQU8sV0FtRGxCO0FBRUYsU0FBZ0IsYUFBYSxDQUFDLFFBQTRCLEVBQUUsYUFBa0I7SUFDNUUsUUFBUSxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUM1QyxhQUFhLENBQUMsS0FBSyxDQUNwQixDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFMzQ2xpZW50LCBHZXRPYmplY3RDb21tYW5kLCBQdXRPYmplY3RDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmNvbnN0IHMzQ2xpZW50ID0gbmV3IFMzQ2xpZW50KHsgcmVnaW9uOiBwcm9jZXNzLmVudi5SRUdJT04gfSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBhbnksIGNvbnRleHQ6IGFueSkgPT4ge1xuICBsZXQgc3RhdHVzID0gJ1NVQ0NFU1MnO1xuICBsZXQgcmVzcG9uc2VEYXRhID0ge307XG5cbiAgLy8gVGhlc2UgYXJlIHRoZSBzdGFuZGFyZCBDcmVhdGUvVXBkYXRlL0RlbGV0ZSBjdXN0b20gcmVzb3VyY2UgcmVxdWVzdCB0eXBlcyBkZWZpbmVkIGhlcmU6XG4gIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2NycGctcmVmLXJlcXVlc3R0eXBlcy5odG1sXG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ0NyZWF0ZScgfHwgZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdVcGRhdGUnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlVmFsdWVzID0gSlNPTi5wYXJzZShldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVWYWx1ZXMpLnRlbXBsYXRlVmFsdWVzO1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEJ1Y2tldCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0QnVja2V0O1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEtleSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0S2V5O1xuICAgICAgY29uc3QgdGVtcGxhdGVPdXRwdXRCdWNrZXQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVPdXRwdXRCdWNrZXQ7XG4gICAgICBjb25zdCB0ZW1wbGF0ZU91dHB1dEtleSA9IGNyeXB0by5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgICBjb25zdCBnZXRPYmplY3RSZXNwb25zZSA9IGF3YWl0IHMzQ2xpZW50LnNlbmQobmV3IEdldE9iamVjdENvbW1hbmQoe1xuICAgICAgICBCdWNrZXQ6IHRlbXBsYXRlSW5wdXRCdWNrZXQsXG4gICAgICAgIEtleTogdGVtcGxhdGVJbnB1dEtleVxuICAgICAgfSkpO1xuXG4gICAgICBsZXQgdGVtcGxhdGUgPSBhd2FpdCBnZXRPYmplY3RSZXNwb25zZS5Cb2R5Py50cmFuc2Zvcm1Ub1N0cmluZygpO1xuXG4gICAgICB0ZW1wbGF0ZVZhbHVlcy5mb3JFYWNoKCh0ZW1wbGF0ZVZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgdGVtcGxhdGUgPSByZXBsYWNlVGFyZ2V0KHRlbXBsYXRlLCB0ZW1wbGF0ZVZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgQnVja2V0OiB0ZW1wbGF0ZU91dHB1dEJ1Y2tldCxcbiAgICAgICAgS2V5OiB0ZW1wbGF0ZU91dHB1dEtleSxcbiAgICAgICAgQm9keTogdGVtcGxhdGVcbiAgICAgIH0pKTtcblxuICAgICAgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICBUZW1wbGF0ZU91dHB1dEtleTogdGVtcGxhdGVPdXRwdXRLZXlcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzdGF0dXMgPSAnRkFJTEVEJztcbiAgICAgIHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgRXJyb3I6IGVyclxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFN0YXR1czogc3RhdHVzLFxuICAgIFJlYXNvbjogSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKSxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCA/PyBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgU3RhY2tJZDogZXZlbnQuU3RhY2tJZCxcbiAgICBSZXF1ZXN0SWQ6IGV2ZW50LlJlcXVlc3RJZCxcbiAgICBMb2dpY2FsUmVzb3VyY2VJZDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gICAgRGF0YTogcmVzcG9uc2VEYXRhLFxuICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VUYXJnZXQodGVtcGxhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCwgdGVtcGxhdGVWYWx1ZTogYW55KSB7XG4gIHRlbXBsYXRlID0gdGVtcGxhdGU/LnJlcGxhY2UoXG4gICAgbmV3IFJlZ0V4cChgXFxcXGIke3RlbXBsYXRlVmFsdWUuaWR9XFxcXGJgLCAnZycpLFxuICAgIHRlbXBsYXRlVmFsdWUudmFsdWVcbiAgKTtcbiAgcmV0dXJuIHRlbXBsYXRlO1xufVxuIl19 \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts new file mode 100644 index 000000000..60953c7fc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3"; +import * as crypto from 'crypto'; + +const s3Client = new S3Client({ region: process.env.REGION }); + +export const handler = async (event: any, context: any) => { + let status = 'SUCCESS'; + let responseData = {}; + + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + + const getObjectResponse = await s3Client.send(new GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + + let template = await getObjectResponse.Body?.transformToString(); + + templateValues.forEach((templateValue: any) => { + template = replaceTarget(template, templateValue); + }); + + await s3Client.send(new PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + + responseData = { + TemplateOutputKey: templateOutputKey + }; + } catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +export function replaceTarget(template: string | undefined, templateValue: any) { + template = template?.replace( + new RegExp(`\\b${templateValue.id}\\b`, 'g'), + templateValue.value + ); + return template; +} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js new file mode 100644 index 000000000..17c9ea7df --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Retry=exports.includeStackTraces=exports.MISSING_PHYSICAL_ID_MARKER=exports.CREATE_FAILED_PHYSICAL_ID_MARKER=void 0,exports.submitResponse=submitResponse,exports.safeHandler=safeHandler,exports.redactDataFromPayload=redactDataFromPayload;const url=require("url"),outbound_1=require("./outbound"),util_1=require("./util");exports.CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",exports.MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function submitResponse(status,event,options={}){const json={Status:status,Reason:options.reason||status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||exports.MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:options.noEcho,Data:event.Data},responseBody=JSON.stringify(json),parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;options?.noEcho?(0,util_1.log)("submit redacted response to cloudformation",loggingSafeUrl,redactDataFromPayload(json)):(0,util_1.log)("submit response to cloudformation",loggingSafeUrl,json);const retryOptions={attempts:5,sleep:1e3};await(0,util_1.withRetries)(retryOptions,outbound_1.httpRequest)({hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}},responseBody)}exports.includeStackTraces=!0;function safeHandler(block){return async event=>{if(event.RequestType==="Delete"&&event.PhysicalResourceId===exports.CREATE_FAILED_PHYSICAL_ID_MARKER){(0,util_1.log)("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{await block(event)}catch(e){if(e instanceof Retry)throw(0,util_1.log)("retry requested by handler"),e;event.PhysicalResourceId||(event.RequestType==="Create"?((0,util_1.log)("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),event.PhysicalResourceId=exports.CREATE_FAILED_PHYSICAL_ID_MARKER):(0,util_1.log)(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify({...event,ResponseURL:"..."})}`)),await submitResponse("FAILED",event,{reason:exports.includeStackTraces?e.stack:e.message})}}}function redactDataFromPayload(payload){const redactedPayload=JSON.parse(JSON.stringify(payload));if(redactedPayload.Data){const keys=Object.keys(redactedPayload.Data);for(const key of keys)redactedPayload.Data[key]="*****"}return redactedPayload}class Retry extends Error{}exports.Retry=Retry; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js new file mode 100644 index 000000000..5c78d63db --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME=exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME=exports.FRAMEWORK_ON_EVENT_HANDLER_NAME=exports.WAITER_STATE_MACHINE_ARN_ENV=exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV=exports.USER_ON_EVENT_FUNCTION_ARN_ENV=void 0,exports.USER_ON_EVENT_FUNCTION_ARN_ENV="USER_ON_EVENT_FUNCTION_ARN",exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV="USER_IS_COMPLETE_FUNCTION_ARN",exports.WAITER_STATE_MACHINE_ARN_ENV="WAITER_STATE_MACHINE_ARN",exports.FRAMEWORK_ON_EVENT_HANDLER_NAME="onEvent",exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME="isComplete",exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME="onTimeout"; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js new file mode 100644 index 000000000..952048e6f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js @@ -0,0 +1,3 @@ +"use strict";const cfnResponse=require("./cfn-response"),consts=require("./consts"),outbound_1=require("./outbound"),util_1=require("./util");async function onEvent(cfnRequest){const sanitizedRequest={...cfnRequest,ResponseURL:"..."};(0,util_1.log)("onEventHandler",sanitizedRequest),cfnRequest.ResourceProperties=cfnRequest.ResourceProperties||{};const onEventResult=await invokeUserFunction(consts.USER_ON_EVENT_FUNCTION_ARN_ENV,sanitizedRequest,cfnRequest.ResponseURL);onEventResult?.NoEcho?(0,util_1.log)("redacted onEvent returned:",cfnResponse.redactDataFromPayload(onEventResult)):(0,util_1.log)("onEvent returned:",onEventResult);const resourceEvent=createResponseEvent(cfnRequest,onEventResult),sanitizedEvent={...resourceEvent,ResponseURL:"..."};if(onEventResult?.NoEcho?(0,util_1.log)("readacted event:",cfnResponse.redactDataFromPayload(sanitizedEvent)):(0,util_1.log)("event:",sanitizedEvent),!process.env[consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV])return cfnResponse.submitResponse("SUCCESS",resourceEvent,{noEcho:resourceEvent.NoEcho});const waiter={stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId,input:JSON.stringify(resourceEvent)};(0,util_1.log)("starting waiter",{stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId}),await(0,outbound_1.startExecution)(waiter)}async function isComplete(event){const sanitizedRequest={...event,ResponseURL:"..."};event?.NoEcho?(0,util_1.log)("redacted isComplete request",cfnResponse.redactDataFromPayload(sanitizedRequest)):(0,util_1.log)("isComplete",sanitizedRequest);const isCompleteResult=await invokeUserFunction(consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV,sanitizedRequest,event.ResponseURL);if(event?.NoEcho?(0,util_1.log)("redacted user isComplete returned:",cfnResponse.redactDataFromPayload(isCompleteResult)):(0,util_1.log)("user isComplete returned:",isCompleteResult),!isCompleteResult.IsComplete)throw isCompleteResult.Data&&Object.keys(isCompleteResult.Data).length>0?new Error('"Data" is not allowed if "IsComplete" is "False"'):new cfnResponse.Retry(JSON.stringify(event));const response={...event,...isCompleteResult,Data:{...event.Data,...isCompleteResult.Data}};await cfnResponse.submitResponse("SUCCESS",response,{noEcho:event.NoEcho})}async function onTimeout(timeoutEvent){(0,util_1.log)("timeoutHandler",timeoutEvent);const isCompleteRequest=JSON.parse(JSON.parse(timeoutEvent.Cause).errorMessage);await cfnResponse.submitResponse("FAILED",isCompleteRequest,{reason:"Operation timed out"})}async function invokeUserFunction(functionArnEnv,sanitizedPayload,responseUrl){const functionArn=(0,util_1.getEnv)(functionArnEnv);(0,util_1.log)(`executing user function ${functionArn} with payload`,sanitizedPayload);const resp=await(0,outbound_1.invokeFunction)({FunctionName:functionArn,Payload:JSON.stringify({...sanitizedPayload,ResponseURL:responseUrl})});(0,util_1.log)("user function response:",resp,typeof resp);const jsonPayload=(0,util_1.parseJsonPayload)(resp.Payload);if(resp.FunctionError){(0,util_1.log)("user function threw an error:",resp.FunctionError);const errorMessage=jsonPayload.errorMessage||"error",arn=functionArn.split(":"),functionName=arn[arn.length-1],message=[errorMessage,"",`Logs: /aws/lambda/${functionName}`,""].join(` +`),e=new Error(message);throw jsonPayload.trace&&(e.stack=[message,...jsonPayload.trace.slice(1)].join(` +`)),e}return jsonPayload}function createResponseEvent(cfnRequest,onEventResult){onEventResult=onEventResult||{};const physicalResourceId=onEventResult.PhysicalResourceId||defaultPhysicalResourceId(cfnRequest);if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}" during deletion`);return cfnRequest.RequestType==="Update"&&physicalResourceId!==cfnRequest.PhysicalResourceId&&(0,util_1.log)(`UPDATE: changing physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}"`),{...cfnRequest,...onEventResult,PhysicalResourceId:physicalResourceId}}function defaultPhysicalResourceId(req){switch(req.RequestType){case"Create":return req.RequestId;case"Update":case"Delete":return req.PhysicalResourceId;default:throw new Error(`Invalid "RequestType" in request "${JSON.stringify(req)}"`)}}module.exports={[consts.FRAMEWORK_ON_EVENT_HANDLER_NAME]:cfnResponse.safeHandler(onEvent),[consts.FRAMEWORK_IS_COMPLETE_HANDLER_NAME]:cfnResponse.safeHandler(isComplete),[consts.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME]:onTimeout}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js new file mode 100644 index 000000000..3c900428d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.httpRequest=exports.invokeFunction=exports.startExecution=void 0;const https=require("https"),client_lambda_1=require("@aws-sdk/client-lambda"),client_sfn_1=require("@aws-sdk/client-sfn"),FRAMEWORK_HANDLER_TIMEOUT=9e5,awsSdkConfig={httpOptions:{timeout:FRAMEWORK_HANDLER_TIMEOUT}};async function defaultHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}let sfn,lambda;async function defaultStartExecution(req){return sfn||(sfn=new client_sfn_1.SFN(awsSdkConfig)),sfn.startExecution(req)}async function defaultInvokeFunction(req){lambda||(lambda=new client_lambda_1.Lambda(awsSdkConfig));try{return await lambda.invoke(req)}catch{return await(0,client_lambda_1.waitUntilFunctionActiveV2)({client:lambda,maxWaitTime:300},{FunctionName:req.FunctionName}),lambda.invoke(req)}}exports.startExecution=defaultStartExecution,exports.invokeFunction=defaultInvokeFunction,exports.httpRequest=defaultHttpRequest; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js new file mode 100644 index 000000000..47b472b09 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getEnv=getEnv,exports.log=log,exports.withRetries=withRetries,exports.parseJsonPayload=parseJsonPayload;function getEnv(name){const value=process.env[name];if(!value)throw new Error(`The environment variable "${name}" is not defined`);return value}function log(title,...args){console.log("[provider-framework]",title,...args.map(x=>typeof x=="object"?JSON.stringify(x,void 0,2):x))}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}function parseJsonPayload(payload){const text=new TextDecoder().decode(Buffer.from(payload??""));if(!text)return{};try{return JSON.parse(text)}catch{throw new Error(`return values from user-handlers must be JSON objects. got: "${text}"`)}} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/integ.json index 1f837179c..08a8c5f3b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "opilamapiFromAssetExistingLambdaFunctionsIntegDefaultTestDeployAssertF0801F72" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/manifest.json index f0c0a0ff3..39c3ccc6b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5ba75477c238c302a69bf1af76ec48a4e379744c7d32f51c770c59d593bfb844.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c282c9964c1ede75567ab929e85e5864f48e7d059b022a38dcd829c984e9d862.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -507,7 +507,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -878,57 +878,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -937,7 +928,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -1014,7 +1008,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1158,7 +1152,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1187,7 +1184,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1251,7 +1251,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1285,7 +1288,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1308,7 +1314,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1338,6 +1347,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilam-apiFromAssetExistingLambdaFunctions.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilam-apiFromAssetExistingLambdaFunctions.assets.json index c3f1bc0e1..8c884be40 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilam-apiFromAssetExistingLambdaFunctions.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilam-apiFromAssetExistingLambdaFunctions.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "c2b362b5f0d6d8f56ac2c011288aebd095499d839b130a932427f74232de2a32": { "displayName": "ApiDefinitionAsset", @@ -85,16 +85,16 @@ } } }, - "5ba75477c238c302a69bf1af76ec48a4e379744c7d32f51c770c59d593bfb844": { + "c282c9964c1ede75567ab929e85e5864f48e7d059b022a38dcd829c984e9d862": { "displayName": "opilam-apiFromAssetExistingLambdaFunctions Template", "source": { "path": "opilam-apiFromAssetExistingLambdaFunctions.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-3f14e50f": { + "current_account-current_region-c1027de5": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "5ba75477c238c302a69bf1af76ec48a4e379744c7d32f51c770c59d593bfb844.json", + "objectKey": "c282c9964c1ede75567ab929e85e5864f48e7d059b022a38dcd829c984e9d862.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilam-apiFromAssetExistingLambdaFunctions.template.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilam-apiFromAssetExistingLambdaFunctions.template.json index c5e4f75f2..f0770be94 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilam-apiFromAssetExistingLambdaFunctions.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilam-apiFromAssetExistingLambdaFunctions.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -279,7 +279,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -451,7 +451,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "Timeout": 60, "TracingConfig": { "Mode": "Active" diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilamapiFromAssetExistingLambdaFunctionsIntegDefaultTestDeployAssertF0801F72.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilamapiFromAssetExistingLambdaFunctionsIntegDefaultTestDeployAssertF0801F72.assets.json index c63cbb770..fb608aa43 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilamapiFromAssetExistingLambdaFunctionsIntegDefaultTestDeployAssertF0801F72.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/opilamapiFromAssetExistingLambdaFunctionsIntegDefaultTestDeployAssertF0801F72.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "opilamapiFromAssetExistingLambdaFunctionsIntegDefaultTestDeployAssertF0801F72 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/tree.json index b9c0b29bc..7e80739e0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetExistingLambdaFunctions.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"opilam-apiFromAssetExistingLambdaFunctions":{"id":"opilam-apiFromAssetExistingLambdaFunctions","path":"opilam-apiFromAssetExistingLambdaFunctions","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-apiFromAssetExistingLambdaFunctions/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"our-log-group":{"id":"our-log-group","path":"opilam-apiFromAssetExistingLambdaFunctions/our-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/our-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731}}}}},"PhotosExistingLambdaTestFromAssetServiceRole":{"id":"PhotosExistingLambdaTestFromAssetServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAssetServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosExistingLambdaTestFromAssetServiceRole":{"id":"ImportPhotosExistingLambdaTestFromAssetServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAssetServiceRole/ImportPhotosExistingLambdaTestFromAssetServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAssetServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosExistingLambdaTestFromAsset":{"id":"PhotosExistingLambdaTestFromAsset","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","functionName":"*","runtime":"*","handler":"*","code":"*","logGroup":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"functionName":"PhotosExistingLambdaTestFromAsset","handler":"index.handler","loggingConfig":{"logGroup":{"Ref":"ourloggroup6D01057B"}},"role":{"Fn::GetAtt":["PhotosExistingLambdaTestFromAssetServiceRoleA2E1C415","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"PhotosExistingLambdaTestFromAssetinlinePolicyAddedToExecutionRole05440213C","roles":[{"Ref":"PhotosExistingLambdaTestFromAssetServiceRoleA2E1C415"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["PhotosExistingLambdaTestFromAsset4EFFFFEE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.86.0"},"children":{"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs20.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/c2b362b5f0d6d8f56ac2c011288aebd095499d839b130a932427f74232de2a32.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.206.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD07750681eaf13350b64ce202e1d0dcfd0e03"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetExistingLambdaFunctions/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetExistingLambdaFunctions/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"opilam-apiFromAssetExistingLambdaFunctions":{"id":"opilam-apiFromAssetExistingLambdaFunctions","path":"opilam-apiFromAssetExistingLambdaFunctions","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-apiFromAssetExistingLambdaFunctions/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetExistingLambdaFunctions/LambdaFunction/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"our-log-group":{"id":"our-log-group","path":"opilam-apiFromAssetExistingLambdaFunctions/our-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/our-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731}}}}},"PhotosExistingLambdaTestFromAssetServiceRole":{"id":"PhotosExistingLambdaTestFromAssetServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAssetServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosExistingLambdaTestFromAssetServiceRole":{"id":"ImportPhotosExistingLambdaTestFromAssetServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAssetServiceRole/ImportPhotosExistingLambdaTestFromAssetServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAssetServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosExistingLambdaTestFromAsset":{"id":"PhotosExistingLambdaTestFromAsset","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","functionName":"*","runtime":"*","handler":"*","code":"*","logGroup":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"functionName":"PhotosExistingLambdaTestFromAsset","handler":"index.handler","loggingConfig":{"logGroup":{"Ref":"ourloggroup6D01057B"}},"role":{"Fn::GetAtt":["PhotosExistingLambdaTestFromAssetServiceRoleA2E1C415","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"PhotosExistingLambdaTestFromAssetinlinePolicyAddedToExecutionRole05440213C","roles":[{"Ref":"PhotosExistingLambdaTestFromAssetServiceRoleA2E1C415"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetExistingLambdaFunctions/PhotosExistingLambdaTestFromAsset/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["PhotosExistingLambdaTestFromAsset4EFFFFEE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.95.1"},"children":{"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs22.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/c2b362b5f0d6d8f56ac2c011288aebd095499d839b130a932427f74232de2a32.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.223.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD07750681eaf13350b64ce202e1d0dcfd0e03"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromAssetExistingLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetExistingLambdaFunctions/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetExistingLambdaFunctions/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetExistingLambdaFunctions/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs new file mode 100644 index 000000000..55e35c614 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled POST from messages lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled GET from messages lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs new file mode 100644 index 000000000..220496109 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled POST from photos lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled GET from photos lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js new file mode 100644 index 000000000..ebaf0b809 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js @@ -0,0 +1,71 @@ +"use strict"; +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.handler = void 0; +exports.replaceTarget = replaceTarget; +const client_s3_1 = require("@aws-sdk/client-s3"); +const crypto = require("crypto"); +const s3Client = new client_s3_1.S3Client({ region: process.env.REGION }); +const handler = async (event, context) => { + let status = 'SUCCESS'; + let responseData = {}; + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + const getObjectResponse = await s3Client.send(new client_s3_1.GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + let template = await getObjectResponse.Body?.transformToString(); + templateValues.forEach((templateValue) => { + template = replaceTarget(template, templateValue); + }); + await s3Client.send(new client_s3_1.PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + responseData = { + TemplateOutputKey: templateOutputKey + }; + } + catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; +exports.handler = handler; +function replaceTarget(template, templateValue) { + template = template?.replace(new RegExp(`\\b${templateValue.id}\\b`, 'g'), templateValue.value); + return template; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQTRESCxzQ0FNQztBQWhFRCxrREFBa0Y7QUFDbEYsaUNBQWlDO0FBRWpDLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFdkQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQVUsRUFBRSxPQUFZLEVBQUUsRUFBRTtJQUN4RCxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDdkIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRXRCLDBGQUEwRjtJQUMxRiw0RkFBNEY7SUFDNUYsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUMxRixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUN6RSxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuRSxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztZQUMzRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ2pFLE1BQU0sRUFBRSxtQkFBbUI7Z0JBQzNCLEdBQUcsRUFBRSxnQkFBZ0I7YUFDdEIsQ0FBQyxDQUFDLENBQUM7WUFFSixJQUFJLFFBQVEsR0FBRyxNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1lBRWpFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFrQixFQUFFLEVBQUU7Z0JBQzVDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ3ZDLE1BQU0sRUFBRSxvQkFBb0I7Z0JBQzVCLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQyxDQUFDLENBQUM7WUFFSixZQUFZLEdBQUc7Z0JBQ2IsaUJBQWlCLEVBQUUsaUJBQWlCO2FBQ3JDLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFDbEIsWUFBWSxHQUFHO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3BDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsYUFBYTtRQUNyRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7UUFDMUMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQW5EVyxRQUFBLE9BQU8sV0FtRGxCO0FBRUYsU0FBZ0IsYUFBYSxDQUFDLFFBQTRCLEVBQUUsYUFBa0I7SUFDNUUsUUFBUSxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUM1QyxhQUFhLENBQUMsS0FBSyxDQUNwQixDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFMzQ2xpZW50LCBHZXRPYmplY3RDb21tYW5kLCBQdXRPYmplY3RDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmNvbnN0IHMzQ2xpZW50ID0gbmV3IFMzQ2xpZW50KHsgcmVnaW9uOiBwcm9jZXNzLmVudi5SRUdJT04gfSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBhbnksIGNvbnRleHQ6IGFueSkgPT4ge1xuICBsZXQgc3RhdHVzID0gJ1NVQ0NFU1MnO1xuICBsZXQgcmVzcG9uc2VEYXRhID0ge307XG5cbiAgLy8gVGhlc2UgYXJlIHRoZSBzdGFuZGFyZCBDcmVhdGUvVXBkYXRlL0RlbGV0ZSBjdXN0b20gcmVzb3VyY2UgcmVxdWVzdCB0eXBlcyBkZWZpbmVkIGhlcmU6XG4gIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2NycGctcmVmLXJlcXVlc3R0eXBlcy5odG1sXG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ0NyZWF0ZScgfHwgZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdVcGRhdGUnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlVmFsdWVzID0gSlNPTi5wYXJzZShldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVWYWx1ZXMpLnRlbXBsYXRlVmFsdWVzO1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEJ1Y2tldCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0QnVja2V0O1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEtleSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0S2V5O1xuICAgICAgY29uc3QgdGVtcGxhdGVPdXRwdXRCdWNrZXQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVPdXRwdXRCdWNrZXQ7XG4gICAgICBjb25zdCB0ZW1wbGF0ZU91dHB1dEtleSA9IGNyeXB0by5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgICBjb25zdCBnZXRPYmplY3RSZXNwb25zZSA9IGF3YWl0IHMzQ2xpZW50LnNlbmQobmV3IEdldE9iamVjdENvbW1hbmQoe1xuICAgICAgICBCdWNrZXQ6IHRlbXBsYXRlSW5wdXRCdWNrZXQsXG4gICAgICAgIEtleTogdGVtcGxhdGVJbnB1dEtleVxuICAgICAgfSkpO1xuXG4gICAgICBsZXQgdGVtcGxhdGUgPSBhd2FpdCBnZXRPYmplY3RSZXNwb25zZS5Cb2R5Py50cmFuc2Zvcm1Ub1N0cmluZygpO1xuXG4gICAgICB0ZW1wbGF0ZVZhbHVlcy5mb3JFYWNoKCh0ZW1wbGF0ZVZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgdGVtcGxhdGUgPSByZXBsYWNlVGFyZ2V0KHRlbXBsYXRlLCB0ZW1wbGF0ZVZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgQnVja2V0OiB0ZW1wbGF0ZU91dHB1dEJ1Y2tldCxcbiAgICAgICAgS2V5OiB0ZW1wbGF0ZU91dHB1dEtleSxcbiAgICAgICAgQm9keTogdGVtcGxhdGVcbiAgICAgIH0pKTtcblxuICAgICAgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICBUZW1wbGF0ZU91dHB1dEtleTogdGVtcGxhdGVPdXRwdXRLZXlcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzdGF0dXMgPSAnRkFJTEVEJztcbiAgICAgIHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgRXJyb3I6IGVyclxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFN0YXR1czogc3RhdHVzLFxuICAgIFJlYXNvbjogSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKSxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCA/PyBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgU3RhY2tJZDogZXZlbnQuU3RhY2tJZCxcbiAgICBSZXF1ZXN0SWQ6IGV2ZW50LlJlcXVlc3RJZCxcbiAgICBMb2dpY2FsUmVzb3VyY2VJZDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gICAgRGF0YTogcmVzcG9uc2VEYXRhLFxuICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VUYXJnZXQodGVtcGxhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCwgdGVtcGxhdGVWYWx1ZTogYW55KSB7XG4gIHRlbXBsYXRlID0gdGVtcGxhdGU/LnJlcGxhY2UoXG4gICAgbmV3IFJlZ0V4cChgXFxcXGIke3RlbXBsYXRlVmFsdWUuaWR9XFxcXGJgLCAnZycpLFxuICAgIHRlbXBsYXRlVmFsdWUudmFsdWVcbiAgKTtcbiAgcmV0dXJuIHRlbXBsYXRlO1xufVxuIl19 \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts new file mode 100644 index 000000000..60953c7fc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3"; +import * as crypto from 'crypto'; + +const s3Client = new S3Client({ region: process.env.REGION }); + +export const handler = async (event: any, context: any) => { + let status = 'SUCCESS'; + let responseData = {}; + + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + + const getObjectResponse = await s3Client.send(new GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + + let template = await getObjectResponse.Body?.transformToString(); + + templateValues.forEach((templateValue: any) => { + template = replaceTarget(template, templateValue); + }); + + await s3Client.send(new PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + + responseData = { + TemplateOutputKey: templateOutputKey + }; + } catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +export function replaceTarget(template: string | undefined, templateValue: any) { + template = template?.replace( + new RegExp(`\\b${templateValue.id}\\b`, 'g'), + templateValue.value + ); + return template; +} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js new file mode 100644 index 000000000..17c9ea7df --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Retry=exports.includeStackTraces=exports.MISSING_PHYSICAL_ID_MARKER=exports.CREATE_FAILED_PHYSICAL_ID_MARKER=void 0,exports.submitResponse=submitResponse,exports.safeHandler=safeHandler,exports.redactDataFromPayload=redactDataFromPayload;const url=require("url"),outbound_1=require("./outbound"),util_1=require("./util");exports.CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",exports.MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function submitResponse(status,event,options={}){const json={Status:status,Reason:options.reason||status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||exports.MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:options.noEcho,Data:event.Data},responseBody=JSON.stringify(json),parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;options?.noEcho?(0,util_1.log)("submit redacted response to cloudformation",loggingSafeUrl,redactDataFromPayload(json)):(0,util_1.log)("submit response to cloudformation",loggingSafeUrl,json);const retryOptions={attempts:5,sleep:1e3};await(0,util_1.withRetries)(retryOptions,outbound_1.httpRequest)({hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}},responseBody)}exports.includeStackTraces=!0;function safeHandler(block){return async event=>{if(event.RequestType==="Delete"&&event.PhysicalResourceId===exports.CREATE_FAILED_PHYSICAL_ID_MARKER){(0,util_1.log)("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{await block(event)}catch(e){if(e instanceof Retry)throw(0,util_1.log)("retry requested by handler"),e;event.PhysicalResourceId||(event.RequestType==="Create"?((0,util_1.log)("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),event.PhysicalResourceId=exports.CREATE_FAILED_PHYSICAL_ID_MARKER):(0,util_1.log)(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify({...event,ResponseURL:"..."})}`)),await submitResponse("FAILED",event,{reason:exports.includeStackTraces?e.stack:e.message})}}}function redactDataFromPayload(payload){const redactedPayload=JSON.parse(JSON.stringify(payload));if(redactedPayload.Data){const keys=Object.keys(redactedPayload.Data);for(const key of keys)redactedPayload.Data[key]="*****"}return redactedPayload}class Retry extends Error{}exports.Retry=Retry; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js new file mode 100644 index 000000000..5c78d63db --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME=exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME=exports.FRAMEWORK_ON_EVENT_HANDLER_NAME=exports.WAITER_STATE_MACHINE_ARN_ENV=exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV=exports.USER_ON_EVENT_FUNCTION_ARN_ENV=void 0,exports.USER_ON_EVENT_FUNCTION_ARN_ENV="USER_ON_EVENT_FUNCTION_ARN",exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV="USER_IS_COMPLETE_FUNCTION_ARN",exports.WAITER_STATE_MACHINE_ARN_ENV="WAITER_STATE_MACHINE_ARN",exports.FRAMEWORK_ON_EVENT_HANDLER_NAME="onEvent",exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME="isComplete",exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME="onTimeout"; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js new file mode 100644 index 000000000..952048e6f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js @@ -0,0 +1,3 @@ +"use strict";const cfnResponse=require("./cfn-response"),consts=require("./consts"),outbound_1=require("./outbound"),util_1=require("./util");async function onEvent(cfnRequest){const sanitizedRequest={...cfnRequest,ResponseURL:"..."};(0,util_1.log)("onEventHandler",sanitizedRequest),cfnRequest.ResourceProperties=cfnRequest.ResourceProperties||{};const onEventResult=await invokeUserFunction(consts.USER_ON_EVENT_FUNCTION_ARN_ENV,sanitizedRequest,cfnRequest.ResponseURL);onEventResult?.NoEcho?(0,util_1.log)("redacted onEvent returned:",cfnResponse.redactDataFromPayload(onEventResult)):(0,util_1.log)("onEvent returned:",onEventResult);const resourceEvent=createResponseEvent(cfnRequest,onEventResult),sanitizedEvent={...resourceEvent,ResponseURL:"..."};if(onEventResult?.NoEcho?(0,util_1.log)("readacted event:",cfnResponse.redactDataFromPayload(sanitizedEvent)):(0,util_1.log)("event:",sanitizedEvent),!process.env[consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV])return cfnResponse.submitResponse("SUCCESS",resourceEvent,{noEcho:resourceEvent.NoEcho});const waiter={stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId,input:JSON.stringify(resourceEvent)};(0,util_1.log)("starting waiter",{stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId}),await(0,outbound_1.startExecution)(waiter)}async function isComplete(event){const sanitizedRequest={...event,ResponseURL:"..."};event?.NoEcho?(0,util_1.log)("redacted isComplete request",cfnResponse.redactDataFromPayload(sanitizedRequest)):(0,util_1.log)("isComplete",sanitizedRequest);const isCompleteResult=await invokeUserFunction(consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV,sanitizedRequest,event.ResponseURL);if(event?.NoEcho?(0,util_1.log)("redacted user isComplete returned:",cfnResponse.redactDataFromPayload(isCompleteResult)):(0,util_1.log)("user isComplete returned:",isCompleteResult),!isCompleteResult.IsComplete)throw isCompleteResult.Data&&Object.keys(isCompleteResult.Data).length>0?new Error('"Data" is not allowed if "IsComplete" is "False"'):new cfnResponse.Retry(JSON.stringify(event));const response={...event,...isCompleteResult,Data:{...event.Data,...isCompleteResult.Data}};await cfnResponse.submitResponse("SUCCESS",response,{noEcho:event.NoEcho})}async function onTimeout(timeoutEvent){(0,util_1.log)("timeoutHandler",timeoutEvent);const isCompleteRequest=JSON.parse(JSON.parse(timeoutEvent.Cause).errorMessage);await cfnResponse.submitResponse("FAILED",isCompleteRequest,{reason:"Operation timed out"})}async function invokeUserFunction(functionArnEnv,sanitizedPayload,responseUrl){const functionArn=(0,util_1.getEnv)(functionArnEnv);(0,util_1.log)(`executing user function ${functionArn} with payload`,sanitizedPayload);const resp=await(0,outbound_1.invokeFunction)({FunctionName:functionArn,Payload:JSON.stringify({...sanitizedPayload,ResponseURL:responseUrl})});(0,util_1.log)("user function response:",resp,typeof resp);const jsonPayload=(0,util_1.parseJsonPayload)(resp.Payload);if(resp.FunctionError){(0,util_1.log)("user function threw an error:",resp.FunctionError);const errorMessage=jsonPayload.errorMessage||"error",arn=functionArn.split(":"),functionName=arn[arn.length-1],message=[errorMessage,"",`Logs: /aws/lambda/${functionName}`,""].join(` +`),e=new Error(message);throw jsonPayload.trace&&(e.stack=[message,...jsonPayload.trace.slice(1)].join(` +`)),e}return jsonPayload}function createResponseEvent(cfnRequest,onEventResult){onEventResult=onEventResult||{};const physicalResourceId=onEventResult.PhysicalResourceId||defaultPhysicalResourceId(cfnRequest);if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}" during deletion`);return cfnRequest.RequestType==="Update"&&physicalResourceId!==cfnRequest.PhysicalResourceId&&(0,util_1.log)(`UPDATE: changing physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}"`),{...cfnRequest,...onEventResult,PhysicalResourceId:physicalResourceId}}function defaultPhysicalResourceId(req){switch(req.RequestType){case"Create":return req.RequestId;case"Update":case"Delete":return req.PhysicalResourceId;default:throw new Error(`Invalid "RequestType" in request "${JSON.stringify(req)}"`)}}module.exports={[consts.FRAMEWORK_ON_EVENT_HANDLER_NAME]:cfnResponse.safeHandler(onEvent),[consts.FRAMEWORK_IS_COMPLETE_HANDLER_NAME]:cfnResponse.safeHandler(isComplete),[consts.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME]:onTimeout}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js new file mode 100644 index 000000000..3c900428d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.httpRequest=exports.invokeFunction=exports.startExecution=void 0;const https=require("https"),client_lambda_1=require("@aws-sdk/client-lambda"),client_sfn_1=require("@aws-sdk/client-sfn"),FRAMEWORK_HANDLER_TIMEOUT=9e5,awsSdkConfig={httpOptions:{timeout:FRAMEWORK_HANDLER_TIMEOUT}};async function defaultHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}let sfn,lambda;async function defaultStartExecution(req){return sfn||(sfn=new client_sfn_1.SFN(awsSdkConfig)),sfn.startExecution(req)}async function defaultInvokeFunction(req){lambda||(lambda=new client_lambda_1.Lambda(awsSdkConfig));try{return await lambda.invoke(req)}catch{return await(0,client_lambda_1.waitUntilFunctionActiveV2)({client:lambda,maxWaitTime:300},{FunctionName:req.FunctionName}),lambda.invoke(req)}}exports.startExecution=defaultStartExecution,exports.invokeFunction=defaultInvokeFunction,exports.httpRequest=defaultHttpRequest; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js new file mode 100644 index 000000000..47b472b09 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getEnv=getEnv,exports.log=log,exports.withRetries=withRetries,exports.parseJsonPayload=parseJsonPayload;function getEnv(name){const value=process.env[name];if(!value)throw new Error(`The environment variable "${name}" is not defined`);return value}function log(title,...args){console.log("[provider-framework]",title,...args.map(x=>typeof x=="object"?JSON.stringify(x,void 0,2):x))}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}function parseJsonPayload(payload){const text=new TextDecoder().decode(Buffer.from(payload??""));if(!text)return{};try{return JSON.parse(text)}catch{throw new Error(`return values from user-handlers must be JSON objects. got: "${text}"`)}} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/integ.json index 175312a53..5558e29a2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "opilamapiFromAssetLambdaFunctionAliasesIntegDefaultTestDeployAssertE338EC71" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/manifest.json index 3e277f4b2..36f560695 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7533e1c22ef06e5a0b1b964b8671f8b9a4fb8159f4cbfdb734bf1c30c20ac612.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/10666ee17953764666039174f0350e43c2c9229fc9be2281c23e91e1cdacd81f.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -205,7 +205,7 @@ "/opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/CurrentVersion/Resource": [ { "type": "aws:cdk:logicalId", - "data": "LambdaFunctionCurrentVersion7D5C86E3e1fbde6f17ee9d8a6083dfbb39f7780b" + "data": "LambdaFunctionCurrentVersion7D5C86E3ab117ee7249b84f5d859e397b08f1209" } ], "/opilam-apiFromAssetLambdaFunctionAliases/our-log-group": [ @@ -546,7 +546,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -902,6 +902,15 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } + ], + "LambdaFunctionCurrentVersion7D5C86E3e1fbde6f17ee9d8a6083dfbb39f7780b": [ + { + "type": "aws:cdk:logicalId", + "data": "LambdaFunctionCurrentVersion7D5C86E3e1fbde6f17ee9d8a6083dfbb39f7780b", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" + ] + } ] }, "displayName": "opilam-apiFromAssetLambdaFunctionAliases" @@ -917,57 +926,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -976,7 +976,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -1053,7 +1056,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1197,7 +1200,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1226,7 +1232,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1290,7 +1299,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1324,7 +1336,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1347,7 +1362,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1377,6 +1395,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilam-apiFromAssetLambdaFunctionAliases.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilam-apiFromAssetLambdaFunctionAliases.assets.json index e94301c01..6d9c8904c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilam-apiFromAssetLambdaFunctionAliases.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilam-apiFromAssetLambdaFunctionAliases.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "c2b362b5f0d6d8f56ac2c011288aebd095499d839b130a932427f74232de2a32": { "displayName": "ApiDefinitionAsset", @@ -85,16 +85,16 @@ } } }, - "7533e1c22ef06e5a0b1b964b8671f8b9a4fb8159f4cbfdb734bf1c30c20ac612": { + "10666ee17953764666039174f0350e43c2c9229fc9be2281c23e91e1cdacd81f": { "displayName": "opilam-apiFromAssetLambdaFunctionAliases Template", "source": { "path": "opilam-apiFromAssetLambdaFunctionAliases.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-1ce2dee2": { + "current_account-current_region-a196e342": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7533e1c22ef06e5a0b1b964b8671f8b9a4fb8159f4cbfdb734bf1c30c20ac612.json", + "objectKey": "10666ee17953764666039174f0350e43c2c9229fc9be2281c23e91e1cdacd81f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilam-apiFromAssetLambdaFunctionAliases.template.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilam-apiFromAssetLambdaFunctionAliases.template.json index fb4f931c9..c61de02e2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilam-apiFromAssetLambdaFunctionAliases.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilam-apiFromAssetLambdaFunctionAliases.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -135,7 +135,7 @@ ] } }, - "LambdaFunctionCurrentVersion7D5C86E3e1fbde6f17ee9d8a6083dfbb39f7780b": { + "LambdaFunctionCurrentVersion7D5C86E3ab117ee7249b84f5d859e397b08f1209": { "Type": "AWS::Lambda::Version", "Properties": { "FunctionName": { @@ -255,7 +255,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -351,7 +351,7 @@ }, "FunctionVersion": { "Fn::GetAtt": [ - "LambdaFunctionCurrentVersion7D5C86E3e1fbde6f17ee9d8a6083dfbb39f7780b", + "LambdaFunctionCurrentVersion7D5C86E3ab117ee7249b84f5d859e397b08f1209", "Version" ] }, @@ -476,7 +476,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "Timeout": 60, "TracingConfig": { "Mode": "Active" diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilamapiFromAssetLambdaFunctionAliasesIntegDefaultTestDeployAssertE338EC71.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilamapiFromAssetLambdaFunctionAliasesIntegDefaultTestDeployAssertE338EC71.assets.json index 9069f51ab..f4b941ba5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilamapiFromAssetLambdaFunctionAliasesIntegDefaultTestDeployAssertE338EC71.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/opilamapiFromAssetLambdaFunctionAliasesIntegDefaultTestDeployAssertE338EC71.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "opilamapiFromAssetLambdaFunctionAliasesIntegDefaultTestDeployAssertE338EC71 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/tree.json index b94116034..b966dfdac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetLambdaFunctionAliases.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"opilam-apiFromAssetLambdaFunctionAliases":{"id":"opilam-apiFromAssetLambdaFunctionAliases","path":"opilam-apiFromAssetLambdaFunctionAliases","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-apiFromAssetLambdaFunctionAliases/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","currentVersionOptions":{"removalPolicy":"retain"}},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"CurrentVersion":{"id":"CurrentVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/CurrentVersion","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Version","version":"2.206.0","metadata":[{"lambda":"*","removalPolicy":"retain"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/CurrentVersion/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnVersion","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Version","aws:cdk:cloudformation:props":{"functionName":{"Ref":"LambdaFunctionBF21E41F"}}}}}}}},"our-log-group":{"id":"our-log-group","path":"opilam-apiFromAssetLambdaFunctionAliases/our-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/our-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731}}}}},"PhotosLambdaAliasTestFromAssetServiceRole":{"id":"PhotosLambdaAliasTestFromAssetServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAssetServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosLambdaAliasTestFromAssetServiceRole":{"id":"ImportPhotosLambdaAliasTestFromAssetServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAssetServiceRole/ImportPhotosLambdaAliasTestFromAssetServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAssetServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosLambdaAliasTestFromAsset":{"id":"PhotosLambdaAliasTestFromAsset","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","functionName":"*","runtime":"*","handler":"*","code":"*","logGroup":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"functionName":"PhotosLambdaAliasTestFromAsset","handler":"index.handler","loggingConfig":{"logGroup":{"Ref":"ourloggroup6D01057B"}},"role":{"Fn::GetAtt":["PhotosLambdaAliasTestFromAssetServiceRole57A6A5AD","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"PhotosLambdaAliasTestFromAssetinlinePolicyAddedToExecutionRole0CCFB3921","roles":[{"Ref":"PhotosLambdaAliasTestFromAssetServiceRole57A6A5AD"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["PhotosLambdaAliasTestFromAsset5EBB242B","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"messages-alias":{"id":"messages-alias","path":"opilam-apiFromAssetLambdaFunctionAliases/messages-alias","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Alias","version":"2.206.0","metadata":[{"version":"*","aliasName":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/messages-alias/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnAlias","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Alias","aws:cdk:cloudformation:props":{"functionName":{"Ref":"LambdaFunctionBF21E41F"},"functionVersion":{"Fn::GetAtt":["LambdaFunctionCurrentVersion7D5C86E3e1fbde6f17ee9d8a6083dfbb39f7780b","Version"]},"name":"messagesAlias"}}},"ScalingRole":{"id":"ScalingRole","path":"opilam-apiFromAssetLambdaFunctionAliases/messages-alias/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetLambdaFunctionAliases/messages-alias/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Ref":"messagesalias73FA2C12"},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.86.0"},"children":{"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs20.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/c2b362b5f0d6d8f56ac2c011288aebd095499d839b130a932427f74232de2a32.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.206.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD0775d9b88994ddc90a5d50e4760778fb8028"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"opilam-apiFromAssetLambdaFunctionAliases":{"id":"opilam-apiFromAssetLambdaFunctionAliases","path":"opilam-apiFromAssetLambdaFunctionAliases","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-apiFromAssetLambdaFunctionAliases/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","currentVersionOptions":{"removalPolicy":"retain"}},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"CurrentVersion":{"id":"CurrentVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/CurrentVersion","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Version","version":"2.223.0","metadata":[{"lambda":"*","removalPolicy":"retain"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/LambdaFunction/CurrentVersion/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnVersion","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Version","aws:cdk:cloudformation:props":{"functionName":{"Ref":"LambdaFunctionBF21E41F"}}}}}}}},"our-log-group":{"id":"our-log-group","path":"opilam-apiFromAssetLambdaFunctionAliases/our-log-group","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"removalPolicy":"destroy"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/our-log-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731}}}}},"PhotosLambdaAliasTestFromAssetServiceRole":{"id":"PhotosLambdaAliasTestFromAssetServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAssetServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosLambdaAliasTestFromAssetServiceRole":{"id":"ImportPhotosLambdaAliasTestFromAssetServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAssetServiceRole/ImportPhotosLambdaAliasTestFromAssetServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAssetServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosLambdaAliasTestFromAsset":{"id":"PhotosLambdaAliasTestFromAsset","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","functionName":"*","runtime":"*","handler":"*","code":"*","logGroup":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"functionName":"PhotosLambdaAliasTestFromAsset","handler":"index.handler","loggingConfig":{"logGroup":{"Ref":"ourloggroup6D01057B"}},"role":{"Fn::GetAtt":["PhotosLambdaAliasTestFromAssetServiceRole57A6A5AD","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"PhotosLambdaAliasTestFromAssetinlinePolicyAddedToExecutionRole0CCFB3921","roles":[{"Ref":"PhotosLambdaAliasTestFromAssetServiceRole57A6A5AD"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetLambdaFunctionAliases/PhotosLambdaAliasTestFromAsset/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["PhotosLambdaAliasTestFromAsset5EBB242B","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"messages-alias":{"id":"messages-alias","path":"opilam-apiFromAssetLambdaFunctionAliases/messages-alias","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Alias","version":"2.223.0","metadata":[{"version":"*","aliasName":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/messages-alias/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnAlias","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Alias","aws:cdk:cloudformation:props":{"functionName":{"Ref":"LambdaFunctionBF21E41F"},"functionVersion":{"Fn::GetAtt":["LambdaFunctionCurrentVersion7D5C86E3ab117ee7249b84f5d859e397b08f1209","Version"]},"name":"messagesAlias"}}},"ScalingRole":{"id":"ScalingRole","path":"opilam-apiFromAssetLambdaFunctionAliases/messages-alias/ScalingRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetLambdaFunctionAliases/messages-alias/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Ref":"messagesalias73FA2C12"},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.95.1"},"children":{"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs22.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/c2b362b5f0d6d8f56ac2c011288aebd095499d839b130a932427f74232de2a32.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.223.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD0775d9b88994ddc90a5d50e4760778fb8028"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromAssetLambdaFunctionAliases/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetLambdaFunctionAliases/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs new file mode 100644 index 000000000..55e35c614 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled POST from messages lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled GET from messages lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs new file mode 100644 index 000000000..220496109 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled POST from photos lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled GET from photos lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js new file mode 100644 index 000000000..ebaf0b809 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js @@ -0,0 +1,71 @@ +"use strict"; +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.handler = void 0; +exports.replaceTarget = replaceTarget; +const client_s3_1 = require("@aws-sdk/client-s3"); +const crypto = require("crypto"); +const s3Client = new client_s3_1.S3Client({ region: process.env.REGION }); +const handler = async (event, context) => { + let status = 'SUCCESS'; + let responseData = {}; + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + const getObjectResponse = await s3Client.send(new client_s3_1.GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + let template = await getObjectResponse.Body?.transformToString(); + templateValues.forEach((templateValue) => { + template = replaceTarget(template, templateValue); + }); + await s3Client.send(new client_s3_1.PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + responseData = { + TemplateOutputKey: templateOutputKey + }; + } + catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; +exports.handler = handler; +function replaceTarget(template, templateValue) { + template = template?.replace(new RegExp(`\\b${templateValue.id}\\b`, 'g'), templateValue.value); + return template; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQTRESCxzQ0FNQztBQWhFRCxrREFBa0Y7QUFDbEYsaUNBQWlDO0FBRWpDLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFdkQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQVUsRUFBRSxPQUFZLEVBQUUsRUFBRTtJQUN4RCxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDdkIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRXRCLDBGQUEwRjtJQUMxRiw0RkFBNEY7SUFDNUYsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUMxRixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUN6RSxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuRSxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztZQUMzRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ2pFLE1BQU0sRUFBRSxtQkFBbUI7Z0JBQzNCLEdBQUcsRUFBRSxnQkFBZ0I7YUFDdEIsQ0FBQyxDQUFDLENBQUM7WUFFSixJQUFJLFFBQVEsR0FBRyxNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1lBRWpFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFrQixFQUFFLEVBQUU7Z0JBQzVDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ3ZDLE1BQU0sRUFBRSxvQkFBb0I7Z0JBQzVCLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQyxDQUFDLENBQUM7WUFFSixZQUFZLEdBQUc7Z0JBQ2IsaUJBQWlCLEVBQUUsaUJBQWlCO2FBQ3JDLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFDbEIsWUFBWSxHQUFHO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3BDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsYUFBYTtRQUNyRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7UUFDMUMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQW5EVyxRQUFBLE9BQU8sV0FtRGxCO0FBRUYsU0FBZ0IsYUFBYSxDQUFDLFFBQTRCLEVBQUUsYUFBa0I7SUFDNUUsUUFBUSxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUM1QyxhQUFhLENBQUMsS0FBSyxDQUNwQixDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFMzQ2xpZW50LCBHZXRPYmplY3RDb21tYW5kLCBQdXRPYmplY3RDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmNvbnN0IHMzQ2xpZW50ID0gbmV3IFMzQ2xpZW50KHsgcmVnaW9uOiBwcm9jZXNzLmVudi5SRUdJT04gfSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBhbnksIGNvbnRleHQ6IGFueSkgPT4ge1xuICBsZXQgc3RhdHVzID0gJ1NVQ0NFU1MnO1xuICBsZXQgcmVzcG9uc2VEYXRhID0ge307XG5cbiAgLy8gVGhlc2UgYXJlIHRoZSBzdGFuZGFyZCBDcmVhdGUvVXBkYXRlL0RlbGV0ZSBjdXN0b20gcmVzb3VyY2UgcmVxdWVzdCB0eXBlcyBkZWZpbmVkIGhlcmU6XG4gIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2NycGctcmVmLXJlcXVlc3R0eXBlcy5odG1sXG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ0NyZWF0ZScgfHwgZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdVcGRhdGUnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlVmFsdWVzID0gSlNPTi5wYXJzZShldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVWYWx1ZXMpLnRlbXBsYXRlVmFsdWVzO1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEJ1Y2tldCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0QnVja2V0O1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEtleSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0S2V5O1xuICAgICAgY29uc3QgdGVtcGxhdGVPdXRwdXRCdWNrZXQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVPdXRwdXRCdWNrZXQ7XG4gICAgICBjb25zdCB0ZW1wbGF0ZU91dHB1dEtleSA9IGNyeXB0by5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgICBjb25zdCBnZXRPYmplY3RSZXNwb25zZSA9IGF3YWl0IHMzQ2xpZW50LnNlbmQobmV3IEdldE9iamVjdENvbW1hbmQoe1xuICAgICAgICBCdWNrZXQ6IHRlbXBsYXRlSW5wdXRCdWNrZXQsXG4gICAgICAgIEtleTogdGVtcGxhdGVJbnB1dEtleVxuICAgICAgfSkpO1xuXG4gICAgICBsZXQgdGVtcGxhdGUgPSBhd2FpdCBnZXRPYmplY3RSZXNwb25zZS5Cb2R5Py50cmFuc2Zvcm1Ub1N0cmluZygpO1xuXG4gICAgICB0ZW1wbGF0ZVZhbHVlcy5mb3JFYWNoKCh0ZW1wbGF0ZVZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgdGVtcGxhdGUgPSByZXBsYWNlVGFyZ2V0KHRlbXBsYXRlLCB0ZW1wbGF0ZVZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgQnVja2V0OiB0ZW1wbGF0ZU91dHB1dEJ1Y2tldCxcbiAgICAgICAgS2V5OiB0ZW1wbGF0ZU91dHB1dEtleSxcbiAgICAgICAgQm9keTogdGVtcGxhdGVcbiAgICAgIH0pKTtcblxuICAgICAgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICBUZW1wbGF0ZU91dHB1dEtleTogdGVtcGxhdGVPdXRwdXRLZXlcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzdGF0dXMgPSAnRkFJTEVEJztcbiAgICAgIHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgRXJyb3I6IGVyclxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFN0YXR1czogc3RhdHVzLFxuICAgIFJlYXNvbjogSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKSxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCA/PyBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgU3RhY2tJZDogZXZlbnQuU3RhY2tJZCxcbiAgICBSZXF1ZXN0SWQ6IGV2ZW50LlJlcXVlc3RJZCxcbiAgICBMb2dpY2FsUmVzb3VyY2VJZDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gICAgRGF0YTogcmVzcG9uc2VEYXRhLFxuICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VUYXJnZXQodGVtcGxhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCwgdGVtcGxhdGVWYWx1ZTogYW55KSB7XG4gIHRlbXBsYXRlID0gdGVtcGxhdGU/LnJlcGxhY2UoXG4gICAgbmV3IFJlZ0V4cChgXFxcXGIke3RlbXBsYXRlVmFsdWUuaWR9XFxcXGJgLCAnZycpLFxuICAgIHRlbXBsYXRlVmFsdWUudmFsdWVcbiAgKTtcbiAgcmV0dXJuIHRlbXBsYXRlO1xufVxuIl19 \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts new file mode 100644 index 000000000..60953c7fc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3"; +import * as crypto from 'crypto'; + +const s3Client = new S3Client({ region: process.env.REGION }); + +export const handler = async (event: any, context: any) => { + let status = 'SUCCESS'; + let responseData = {}; + + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + + const getObjectResponse = await s3Client.send(new GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + + let template = await getObjectResponse.Body?.transformToString(); + + templateValues.forEach((templateValue: any) => { + template = replaceTarget(template, templateValue); + }); + + await s3Client.send(new PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + + responseData = { + TemplateOutputKey: templateOutputKey + }; + } catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +export function replaceTarget(template: string | undefined, templateValue: any) { + template = template?.replace( + new RegExp(`\\b${templateValue.id}\\b`, 'g'), + templateValue.value + ); + return template; +} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js new file mode 100644 index 000000000..17c9ea7df --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Retry=exports.includeStackTraces=exports.MISSING_PHYSICAL_ID_MARKER=exports.CREATE_FAILED_PHYSICAL_ID_MARKER=void 0,exports.submitResponse=submitResponse,exports.safeHandler=safeHandler,exports.redactDataFromPayload=redactDataFromPayload;const url=require("url"),outbound_1=require("./outbound"),util_1=require("./util");exports.CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",exports.MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function submitResponse(status,event,options={}){const json={Status:status,Reason:options.reason||status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||exports.MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:options.noEcho,Data:event.Data},responseBody=JSON.stringify(json),parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;options?.noEcho?(0,util_1.log)("submit redacted response to cloudformation",loggingSafeUrl,redactDataFromPayload(json)):(0,util_1.log)("submit response to cloudformation",loggingSafeUrl,json);const retryOptions={attempts:5,sleep:1e3};await(0,util_1.withRetries)(retryOptions,outbound_1.httpRequest)({hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}},responseBody)}exports.includeStackTraces=!0;function safeHandler(block){return async event=>{if(event.RequestType==="Delete"&&event.PhysicalResourceId===exports.CREATE_FAILED_PHYSICAL_ID_MARKER){(0,util_1.log)("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{await block(event)}catch(e){if(e instanceof Retry)throw(0,util_1.log)("retry requested by handler"),e;event.PhysicalResourceId||(event.RequestType==="Create"?((0,util_1.log)("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),event.PhysicalResourceId=exports.CREATE_FAILED_PHYSICAL_ID_MARKER):(0,util_1.log)(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify({...event,ResponseURL:"..."})}`)),await submitResponse("FAILED",event,{reason:exports.includeStackTraces?e.stack:e.message})}}}function redactDataFromPayload(payload){const redactedPayload=JSON.parse(JSON.stringify(payload));if(redactedPayload.Data){const keys=Object.keys(redactedPayload.Data);for(const key of keys)redactedPayload.Data[key]="*****"}return redactedPayload}class Retry extends Error{}exports.Retry=Retry; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js new file mode 100644 index 000000000..5c78d63db --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME=exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME=exports.FRAMEWORK_ON_EVENT_HANDLER_NAME=exports.WAITER_STATE_MACHINE_ARN_ENV=exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV=exports.USER_ON_EVENT_FUNCTION_ARN_ENV=void 0,exports.USER_ON_EVENT_FUNCTION_ARN_ENV="USER_ON_EVENT_FUNCTION_ARN",exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV="USER_IS_COMPLETE_FUNCTION_ARN",exports.WAITER_STATE_MACHINE_ARN_ENV="WAITER_STATE_MACHINE_ARN",exports.FRAMEWORK_ON_EVENT_HANDLER_NAME="onEvent",exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME="isComplete",exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME="onTimeout"; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js new file mode 100644 index 000000000..952048e6f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js @@ -0,0 +1,3 @@ +"use strict";const cfnResponse=require("./cfn-response"),consts=require("./consts"),outbound_1=require("./outbound"),util_1=require("./util");async function onEvent(cfnRequest){const sanitizedRequest={...cfnRequest,ResponseURL:"..."};(0,util_1.log)("onEventHandler",sanitizedRequest),cfnRequest.ResourceProperties=cfnRequest.ResourceProperties||{};const onEventResult=await invokeUserFunction(consts.USER_ON_EVENT_FUNCTION_ARN_ENV,sanitizedRequest,cfnRequest.ResponseURL);onEventResult?.NoEcho?(0,util_1.log)("redacted onEvent returned:",cfnResponse.redactDataFromPayload(onEventResult)):(0,util_1.log)("onEvent returned:",onEventResult);const resourceEvent=createResponseEvent(cfnRequest,onEventResult),sanitizedEvent={...resourceEvent,ResponseURL:"..."};if(onEventResult?.NoEcho?(0,util_1.log)("readacted event:",cfnResponse.redactDataFromPayload(sanitizedEvent)):(0,util_1.log)("event:",sanitizedEvent),!process.env[consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV])return cfnResponse.submitResponse("SUCCESS",resourceEvent,{noEcho:resourceEvent.NoEcho});const waiter={stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId,input:JSON.stringify(resourceEvent)};(0,util_1.log)("starting waiter",{stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId}),await(0,outbound_1.startExecution)(waiter)}async function isComplete(event){const sanitizedRequest={...event,ResponseURL:"..."};event?.NoEcho?(0,util_1.log)("redacted isComplete request",cfnResponse.redactDataFromPayload(sanitizedRequest)):(0,util_1.log)("isComplete",sanitizedRequest);const isCompleteResult=await invokeUserFunction(consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV,sanitizedRequest,event.ResponseURL);if(event?.NoEcho?(0,util_1.log)("redacted user isComplete returned:",cfnResponse.redactDataFromPayload(isCompleteResult)):(0,util_1.log)("user isComplete returned:",isCompleteResult),!isCompleteResult.IsComplete)throw isCompleteResult.Data&&Object.keys(isCompleteResult.Data).length>0?new Error('"Data" is not allowed if "IsComplete" is "False"'):new cfnResponse.Retry(JSON.stringify(event));const response={...event,...isCompleteResult,Data:{...event.Data,...isCompleteResult.Data}};await cfnResponse.submitResponse("SUCCESS",response,{noEcho:event.NoEcho})}async function onTimeout(timeoutEvent){(0,util_1.log)("timeoutHandler",timeoutEvent);const isCompleteRequest=JSON.parse(JSON.parse(timeoutEvent.Cause).errorMessage);await cfnResponse.submitResponse("FAILED",isCompleteRequest,{reason:"Operation timed out"})}async function invokeUserFunction(functionArnEnv,sanitizedPayload,responseUrl){const functionArn=(0,util_1.getEnv)(functionArnEnv);(0,util_1.log)(`executing user function ${functionArn} with payload`,sanitizedPayload);const resp=await(0,outbound_1.invokeFunction)({FunctionName:functionArn,Payload:JSON.stringify({...sanitizedPayload,ResponseURL:responseUrl})});(0,util_1.log)("user function response:",resp,typeof resp);const jsonPayload=(0,util_1.parseJsonPayload)(resp.Payload);if(resp.FunctionError){(0,util_1.log)("user function threw an error:",resp.FunctionError);const errorMessage=jsonPayload.errorMessage||"error",arn=functionArn.split(":"),functionName=arn[arn.length-1],message=[errorMessage,"",`Logs: /aws/lambda/${functionName}`,""].join(` +`),e=new Error(message);throw jsonPayload.trace&&(e.stack=[message,...jsonPayload.trace.slice(1)].join(` +`)),e}return jsonPayload}function createResponseEvent(cfnRequest,onEventResult){onEventResult=onEventResult||{};const physicalResourceId=onEventResult.PhysicalResourceId||defaultPhysicalResourceId(cfnRequest);if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}" during deletion`);return cfnRequest.RequestType==="Update"&&physicalResourceId!==cfnRequest.PhysicalResourceId&&(0,util_1.log)(`UPDATE: changing physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}"`),{...cfnRequest,...onEventResult,PhysicalResourceId:physicalResourceId}}function defaultPhysicalResourceId(req){switch(req.RequestType){case"Create":return req.RequestId;case"Update":case"Delete":return req.PhysicalResourceId;default:throw new Error(`Invalid "RequestType" in request "${JSON.stringify(req)}"`)}}module.exports={[consts.FRAMEWORK_ON_EVENT_HANDLER_NAME]:cfnResponse.safeHandler(onEvent),[consts.FRAMEWORK_IS_COMPLETE_HANDLER_NAME]:cfnResponse.safeHandler(isComplete),[consts.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME]:onTimeout}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js new file mode 100644 index 000000000..3c900428d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.httpRequest=exports.invokeFunction=exports.startExecution=void 0;const https=require("https"),client_lambda_1=require("@aws-sdk/client-lambda"),client_sfn_1=require("@aws-sdk/client-sfn"),FRAMEWORK_HANDLER_TIMEOUT=9e5,awsSdkConfig={httpOptions:{timeout:FRAMEWORK_HANDLER_TIMEOUT}};async function defaultHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}let sfn,lambda;async function defaultStartExecution(req){return sfn||(sfn=new client_sfn_1.SFN(awsSdkConfig)),sfn.startExecution(req)}async function defaultInvokeFunction(req){lambda||(lambda=new client_lambda_1.Lambda(awsSdkConfig));try{return await lambda.invoke(req)}catch{return await(0,client_lambda_1.waitUntilFunctionActiveV2)({client:lambda,maxWaitTime:300},{FunctionName:req.FunctionName}),lambda.invoke(req)}}exports.startExecution=defaultStartExecution,exports.invokeFunction=defaultInvokeFunction,exports.httpRequest=defaultHttpRequest; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js new file mode 100644 index 000000000..47b472b09 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getEnv=getEnv,exports.log=log,exports.withRetries=withRetries,exports.parseJsonPayload=parseJsonPayload;function getEnv(name){const value=process.env[name];if(!value)throw new Error(`The environment variable "${name}" is not defined`);return value}function log(title,...args){console.log("[provider-framework]",title,...args.map(x=>typeof x=="object"?JSON.stringify(x,void 0,2):x))}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}function parseJsonPayload(payload){const text=new TextDecoder().decode(Buffer.from(payload??""));if(!text)return{};try{return JSON.parse(text)}catch{throw new Error(`return values from user-handlers must be JSON objects. got: "${text}"`)}} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/integ.json index b7fa43986..17522768f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "opilamapiFromAssetNewLambdaFunctionsIntegDefaultTestDeployAssert781D98B1" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/manifest.json index c13674266..daeb1598b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c592d0bc471f70e503637104a533d7d9d031a37253fe9ccec4bba9db249a548b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c93962dd544ddb7b58e9736ce1b6d41c241449ae759c49bbef66e0e614e5069c.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -491,7 +491,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -862,57 +862,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -921,7 +912,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -998,7 +992,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1142,7 +1136,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1171,7 +1168,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1235,7 +1235,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1269,7 +1272,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1292,7 +1298,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1322,6 +1331,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilam-apiFromAssetNewLambdaFunctions.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilam-apiFromAssetNewLambdaFunctions.assets.json index abfcff527..91ae2e13d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilam-apiFromAssetNewLambdaFunctions.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilam-apiFromAssetNewLambdaFunctions.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "c2b362b5f0d6d8f56ac2c011288aebd095499d839b130a932427f74232de2a32": { "displayName": "ApiDefinitionAsset", @@ -85,16 +85,16 @@ } } }, - "c592d0bc471f70e503637104a533d7d9d031a37253fe9ccec4bba9db249a548b": { + "c93962dd544ddb7b58e9736ce1b6d41c241449ae759c49bbef66e0e614e5069c": { "displayName": "opilam-apiFromAssetNewLambdaFunctions Template", "source": { "path": "opilam-apiFromAssetNewLambdaFunctions.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-abf2b621": { + "current_account-current_region-ee82fcc0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c592d0bc471f70e503637104a533d7d9d031a37253fe9ccec4bba9db249a548b.json", + "objectKey": "c93962dd544ddb7b58e9736ce1b6d41c241449ae759c49bbef66e0e614e5069c.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilam-apiFromAssetNewLambdaFunctions.template.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilam-apiFromAssetNewLambdaFunctions.template.json index d9ac94b0e..56d02227d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilam-apiFromAssetNewLambdaFunctions.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilam-apiFromAssetNewLambdaFunctions.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -255,7 +255,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -427,7 +427,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "Timeout": 60, "TracingConfig": { "Mode": "Active" diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilamapiFromAssetNewLambdaFunctionsIntegDefaultTestDeployAssert781D98B1.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilamapiFromAssetNewLambdaFunctionsIntegDefaultTestDeployAssert781D98B1.assets.json index 99b91b39f..a60790639 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilamapiFromAssetNewLambdaFunctionsIntegDefaultTestDeployAssert781D98B1.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/opilamapiFromAssetNewLambdaFunctionsIntegDefaultTestDeployAssert781D98B1.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "opilamapiFromAssetNewLambdaFunctionsIntegDefaultTestDeployAssert781D98B1 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/tree.json index e731fe8db..0967fcd12 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetNewLambdaFunctions.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"opilam-apiFromAssetNewLambdaFunctions":{"id":"opilam-apiFromAssetNewLambdaFunctions","path":"opilam-apiFromAssetNewLambdaFunctions","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-apiFromAssetNewLambdaFunctions/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.90.4"},"children":{"MessagesHandlerApiFunction0ServiceRole":{"id":"MessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerApiFunction0ServiceRole":{"id":"ImportMessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/ImportMessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerApiFunction0":{"id":"MessagesHandlerApiFunction0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0inlinePolicyAddedToExecutionRole035380347","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"PhotosHandlerApiFunction1ServiceRole":{"id":"PhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosHandlerApiFunction1ServiceRole":{"id":"ImportPhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/ImportPhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosHandlerApiFunction1":{"id":"PhotosHandlerApiFunction1","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1inlinePolicyAddedToExecutionRole0D189A0E2","roles":[{"Ref":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs20.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/c2b362b5f0d6d8f56ac2c011288aebd095499d839b130a932427f74232de2a32.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.206.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD0775c586d865ce613dde0b09710274a96485"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromAssetNewLambdaFunctions/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetNewLambdaFunctions/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetNewLambdaFunctions/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"opilam-apiFromAssetNewLambdaFunctions":{"id":"opilam-apiFromAssetNewLambdaFunctions","path":"opilam-apiFromAssetNewLambdaFunctions","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-apiFromAssetNewLambdaFunctions/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.95.1"},"children":{"MessagesHandlerApiFunction0ServiceRole":{"id":"MessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerApiFunction0ServiceRole":{"id":"ImportMessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/ImportMessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerApiFunction0":{"id":"MessagesHandlerApiFunction0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0inlinePolicyAddedToExecutionRole035380347","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"PhotosHandlerApiFunction1ServiceRole":{"id":"PhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosHandlerApiFunction1ServiceRole":{"id":"ImportPhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/ImportPhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosHandlerApiFunction1":{"id":"PhotosHandlerApiFunction1","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1inlinePolicyAddedToExecutionRole0D189A0E2","roles":[{"Ref":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs22.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/c2b362b5f0d6d8f56ac2c011288aebd095499d839b130a932427f74232de2a32.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.223.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD0775c586d865ce613dde0b09710274a96485"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromAssetNewLambdaFunctions/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromAssetNewLambdaFunctions/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetNewLambdaFunctions/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetNewLambdaFunctions/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetNewLambdaFunctions/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs new file mode 100644 index 000000000..55e35c614 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled POST from messages lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled GET from messages lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs new file mode 100644 index 000000000..220496109 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled POST from photos lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled GET from photos lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js new file mode 100644 index 000000000..ebaf0b809 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js @@ -0,0 +1,71 @@ +"use strict"; +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.handler = void 0; +exports.replaceTarget = replaceTarget; +const client_s3_1 = require("@aws-sdk/client-s3"); +const crypto = require("crypto"); +const s3Client = new client_s3_1.S3Client({ region: process.env.REGION }); +const handler = async (event, context) => { + let status = 'SUCCESS'; + let responseData = {}; + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + const getObjectResponse = await s3Client.send(new client_s3_1.GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + let template = await getObjectResponse.Body?.transformToString(); + templateValues.forEach((templateValue) => { + template = replaceTarget(template, templateValue); + }); + await s3Client.send(new client_s3_1.PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + responseData = { + TemplateOutputKey: templateOutputKey + }; + } + catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; +exports.handler = handler; +function replaceTarget(template, templateValue) { + template = template?.replace(new RegExp(`\\b${templateValue.id}\\b`, 'g'), templateValue.value); + return template; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQTRESCxzQ0FNQztBQWhFRCxrREFBa0Y7QUFDbEYsaUNBQWlDO0FBRWpDLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFdkQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQVUsRUFBRSxPQUFZLEVBQUUsRUFBRTtJQUN4RCxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDdkIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRXRCLDBGQUEwRjtJQUMxRiw0RkFBNEY7SUFDNUYsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUMxRixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUN6RSxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuRSxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztZQUMzRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ2pFLE1BQU0sRUFBRSxtQkFBbUI7Z0JBQzNCLEdBQUcsRUFBRSxnQkFBZ0I7YUFDdEIsQ0FBQyxDQUFDLENBQUM7WUFFSixJQUFJLFFBQVEsR0FBRyxNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1lBRWpFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFrQixFQUFFLEVBQUU7Z0JBQzVDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ3ZDLE1BQU0sRUFBRSxvQkFBb0I7Z0JBQzVCLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQyxDQUFDLENBQUM7WUFFSixZQUFZLEdBQUc7Z0JBQ2IsaUJBQWlCLEVBQUUsaUJBQWlCO2FBQ3JDLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFDbEIsWUFBWSxHQUFHO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3BDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsYUFBYTtRQUNyRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7UUFDMUMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQW5EVyxRQUFBLE9BQU8sV0FtRGxCO0FBRUYsU0FBZ0IsYUFBYSxDQUFDLFFBQTRCLEVBQUUsYUFBa0I7SUFDNUUsUUFBUSxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUM1QyxhQUFhLENBQUMsS0FBSyxDQUNwQixDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFMzQ2xpZW50LCBHZXRPYmplY3RDb21tYW5kLCBQdXRPYmplY3RDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmNvbnN0IHMzQ2xpZW50ID0gbmV3IFMzQ2xpZW50KHsgcmVnaW9uOiBwcm9jZXNzLmVudi5SRUdJT04gfSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBhbnksIGNvbnRleHQ6IGFueSkgPT4ge1xuICBsZXQgc3RhdHVzID0gJ1NVQ0NFU1MnO1xuICBsZXQgcmVzcG9uc2VEYXRhID0ge307XG5cbiAgLy8gVGhlc2UgYXJlIHRoZSBzdGFuZGFyZCBDcmVhdGUvVXBkYXRlL0RlbGV0ZSBjdXN0b20gcmVzb3VyY2UgcmVxdWVzdCB0eXBlcyBkZWZpbmVkIGhlcmU6XG4gIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2NycGctcmVmLXJlcXVlc3R0eXBlcy5odG1sXG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ0NyZWF0ZScgfHwgZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdVcGRhdGUnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlVmFsdWVzID0gSlNPTi5wYXJzZShldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVWYWx1ZXMpLnRlbXBsYXRlVmFsdWVzO1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEJ1Y2tldCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0QnVja2V0O1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEtleSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0S2V5O1xuICAgICAgY29uc3QgdGVtcGxhdGVPdXRwdXRCdWNrZXQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVPdXRwdXRCdWNrZXQ7XG4gICAgICBjb25zdCB0ZW1wbGF0ZU91dHB1dEtleSA9IGNyeXB0by5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgICBjb25zdCBnZXRPYmplY3RSZXNwb25zZSA9IGF3YWl0IHMzQ2xpZW50LnNlbmQobmV3IEdldE9iamVjdENvbW1hbmQoe1xuICAgICAgICBCdWNrZXQ6IHRlbXBsYXRlSW5wdXRCdWNrZXQsXG4gICAgICAgIEtleTogdGVtcGxhdGVJbnB1dEtleVxuICAgICAgfSkpO1xuXG4gICAgICBsZXQgdGVtcGxhdGUgPSBhd2FpdCBnZXRPYmplY3RSZXNwb25zZS5Cb2R5Py50cmFuc2Zvcm1Ub1N0cmluZygpO1xuXG4gICAgICB0ZW1wbGF0ZVZhbHVlcy5mb3JFYWNoKCh0ZW1wbGF0ZVZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgdGVtcGxhdGUgPSByZXBsYWNlVGFyZ2V0KHRlbXBsYXRlLCB0ZW1wbGF0ZVZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgQnVja2V0OiB0ZW1wbGF0ZU91dHB1dEJ1Y2tldCxcbiAgICAgICAgS2V5OiB0ZW1wbGF0ZU91dHB1dEtleSxcbiAgICAgICAgQm9keTogdGVtcGxhdGVcbiAgICAgIH0pKTtcblxuICAgICAgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICBUZW1wbGF0ZU91dHB1dEtleTogdGVtcGxhdGVPdXRwdXRLZXlcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzdGF0dXMgPSAnRkFJTEVEJztcbiAgICAgIHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgRXJyb3I6IGVyclxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFN0YXR1czogc3RhdHVzLFxuICAgIFJlYXNvbjogSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKSxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCA/PyBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgU3RhY2tJZDogZXZlbnQuU3RhY2tJZCxcbiAgICBSZXF1ZXN0SWQ6IGV2ZW50LlJlcXVlc3RJZCxcbiAgICBMb2dpY2FsUmVzb3VyY2VJZDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gICAgRGF0YTogcmVzcG9uc2VEYXRhLFxuICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VUYXJnZXQodGVtcGxhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCwgdGVtcGxhdGVWYWx1ZTogYW55KSB7XG4gIHRlbXBsYXRlID0gdGVtcGxhdGU/LnJlcGxhY2UoXG4gICAgbmV3IFJlZ0V4cChgXFxcXGIke3RlbXBsYXRlVmFsdWUuaWR9XFxcXGJgLCAnZycpLFxuICAgIHRlbXBsYXRlVmFsdWUudmFsdWVcbiAgKTtcbiAgcmV0dXJuIHRlbXBsYXRlO1xufVxuIl19 \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts new file mode 100644 index 000000000..60953c7fc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3"; +import * as crypto from 'crypto'; + +const s3Client = new S3Client({ region: process.env.REGION }); + +export const handler = async (event: any, context: any) => { + let status = 'SUCCESS'; + let responseData = {}; + + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + + const getObjectResponse = await s3Client.send(new GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + + let template = await getObjectResponse.Body?.transformToString(); + + templateValues.forEach((templateValue: any) => { + template = replaceTarget(template, templateValue); + }); + + await s3Client.send(new PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + + responseData = { + TemplateOutputKey: templateOutputKey + }; + } catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +export function replaceTarget(template: string | undefined, templateValue: any) { + template = template?.replace( + new RegExp(`\\b${templateValue.id}\\b`, 'g'), + templateValue.value + ); + return template; +} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js new file mode 100644 index 000000000..17c9ea7df --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Retry=exports.includeStackTraces=exports.MISSING_PHYSICAL_ID_MARKER=exports.CREATE_FAILED_PHYSICAL_ID_MARKER=void 0,exports.submitResponse=submitResponse,exports.safeHandler=safeHandler,exports.redactDataFromPayload=redactDataFromPayload;const url=require("url"),outbound_1=require("./outbound"),util_1=require("./util");exports.CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",exports.MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function submitResponse(status,event,options={}){const json={Status:status,Reason:options.reason||status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||exports.MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:options.noEcho,Data:event.Data},responseBody=JSON.stringify(json),parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;options?.noEcho?(0,util_1.log)("submit redacted response to cloudformation",loggingSafeUrl,redactDataFromPayload(json)):(0,util_1.log)("submit response to cloudformation",loggingSafeUrl,json);const retryOptions={attempts:5,sleep:1e3};await(0,util_1.withRetries)(retryOptions,outbound_1.httpRequest)({hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}},responseBody)}exports.includeStackTraces=!0;function safeHandler(block){return async event=>{if(event.RequestType==="Delete"&&event.PhysicalResourceId===exports.CREATE_FAILED_PHYSICAL_ID_MARKER){(0,util_1.log)("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{await block(event)}catch(e){if(e instanceof Retry)throw(0,util_1.log)("retry requested by handler"),e;event.PhysicalResourceId||(event.RequestType==="Create"?((0,util_1.log)("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),event.PhysicalResourceId=exports.CREATE_FAILED_PHYSICAL_ID_MARKER):(0,util_1.log)(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify({...event,ResponseURL:"..."})}`)),await submitResponse("FAILED",event,{reason:exports.includeStackTraces?e.stack:e.message})}}}function redactDataFromPayload(payload){const redactedPayload=JSON.parse(JSON.stringify(payload));if(redactedPayload.Data){const keys=Object.keys(redactedPayload.Data);for(const key of keys)redactedPayload.Data[key]="*****"}return redactedPayload}class Retry extends Error{}exports.Retry=Retry; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js new file mode 100644 index 000000000..5c78d63db --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME=exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME=exports.FRAMEWORK_ON_EVENT_HANDLER_NAME=exports.WAITER_STATE_MACHINE_ARN_ENV=exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV=exports.USER_ON_EVENT_FUNCTION_ARN_ENV=void 0,exports.USER_ON_EVENT_FUNCTION_ARN_ENV="USER_ON_EVENT_FUNCTION_ARN",exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV="USER_IS_COMPLETE_FUNCTION_ARN",exports.WAITER_STATE_MACHINE_ARN_ENV="WAITER_STATE_MACHINE_ARN",exports.FRAMEWORK_ON_EVENT_HANDLER_NAME="onEvent",exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME="isComplete",exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME="onTimeout"; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js new file mode 100644 index 000000000..952048e6f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js @@ -0,0 +1,3 @@ +"use strict";const cfnResponse=require("./cfn-response"),consts=require("./consts"),outbound_1=require("./outbound"),util_1=require("./util");async function onEvent(cfnRequest){const sanitizedRequest={...cfnRequest,ResponseURL:"..."};(0,util_1.log)("onEventHandler",sanitizedRequest),cfnRequest.ResourceProperties=cfnRequest.ResourceProperties||{};const onEventResult=await invokeUserFunction(consts.USER_ON_EVENT_FUNCTION_ARN_ENV,sanitizedRequest,cfnRequest.ResponseURL);onEventResult?.NoEcho?(0,util_1.log)("redacted onEvent returned:",cfnResponse.redactDataFromPayload(onEventResult)):(0,util_1.log)("onEvent returned:",onEventResult);const resourceEvent=createResponseEvent(cfnRequest,onEventResult),sanitizedEvent={...resourceEvent,ResponseURL:"..."};if(onEventResult?.NoEcho?(0,util_1.log)("readacted event:",cfnResponse.redactDataFromPayload(sanitizedEvent)):(0,util_1.log)("event:",sanitizedEvent),!process.env[consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV])return cfnResponse.submitResponse("SUCCESS",resourceEvent,{noEcho:resourceEvent.NoEcho});const waiter={stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId,input:JSON.stringify(resourceEvent)};(0,util_1.log)("starting waiter",{stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId}),await(0,outbound_1.startExecution)(waiter)}async function isComplete(event){const sanitizedRequest={...event,ResponseURL:"..."};event?.NoEcho?(0,util_1.log)("redacted isComplete request",cfnResponse.redactDataFromPayload(sanitizedRequest)):(0,util_1.log)("isComplete",sanitizedRequest);const isCompleteResult=await invokeUserFunction(consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV,sanitizedRequest,event.ResponseURL);if(event?.NoEcho?(0,util_1.log)("redacted user isComplete returned:",cfnResponse.redactDataFromPayload(isCompleteResult)):(0,util_1.log)("user isComplete returned:",isCompleteResult),!isCompleteResult.IsComplete)throw isCompleteResult.Data&&Object.keys(isCompleteResult.Data).length>0?new Error('"Data" is not allowed if "IsComplete" is "False"'):new cfnResponse.Retry(JSON.stringify(event));const response={...event,...isCompleteResult,Data:{...event.Data,...isCompleteResult.Data}};await cfnResponse.submitResponse("SUCCESS",response,{noEcho:event.NoEcho})}async function onTimeout(timeoutEvent){(0,util_1.log)("timeoutHandler",timeoutEvent);const isCompleteRequest=JSON.parse(JSON.parse(timeoutEvent.Cause).errorMessage);await cfnResponse.submitResponse("FAILED",isCompleteRequest,{reason:"Operation timed out"})}async function invokeUserFunction(functionArnEnv,sanitizedPayload,responseUrl){const functionArn=(0,util_1.getEnv)(functionArnEnv);(0,util_1.log)(`executing user function ${functionArn} with payload`,sanitizedPayload);const resp=await(0,outbound_1.invokeFunction)({FunctionName:functionArn,Payload:JSON.stringify({...sanitizedPayload,ResponseURL:responseUrl})});(0,util_1.log)("user function response:",resp,typeof resp);const jsonPayload=(0,util_1.parseJsonPayload)(resp.Payload);if(resp.FunctionError){(0,util_1.log)("user function threw an error:",resp.FunctionError);const errorMessage=jsonPayload.errorMessage||"error",arn=functionArn.split(":"),functionName=arn[arn.length-1],message=[errorMessage,"",`Logs: /aws/lambda/${functionName}`,""].join(` +`),e=new Error(message);throw jsonPayload.trace&&(e.stack=[message,...jsonPayload.trace.slice(1)].join(` +`)),e}return jsonPayload}function createResponseEvent(cfnRequest,onEventResult){onEventResult=onEventResult||{};const physicalResourceId=onEventResult.PhysicalResourceId||defaultPhysicalResourceId(cfnRequest);if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}" during deletion`);return cfnRequest.RequestType==="Update"&&physicalResourceId!==cfnRequest.PhysicalResourceId&&(0,util_1.log)(`UPDATE: changing physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}"`),{...cfnRequest,...onEventResult,PhysicalResourceId:physicalResourceId}}function defaultPhysicalResourceId(req){switch(req.RequestType){case"Create":return req.RequestId;case"Update":case"Delete":return req.PhysicalResourceId;default:throw new Error(`Invalid "RequestType" in request "${JSON.stringify(req)}"`)}}module.exports={[consts.FRAMEWORK_ON_EVENT_HANDLER_NAME]:cfnResponse.safeHandler(onEvent),[consts.FRAMEWORK_IS_COMPLETE_HANDLER_NAME]:cfnResponse.safeHandler(isComplete),[consts.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME]:onTimeout}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js new file mode 100644 index 000000000..3c900428d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.httpRequest=exports.invokeFunction=exports.startExecution=void 0;const https=require("https"),client_lambda_1=require("@aws-sdk/client-lambda"),client_sfn_1=require("@aws-sdk/client-sfn"),FRAMEWORK_HANDLER_TIMEOUT=9e5,awsSdkConfig={httpOptions:{timeout:FRAMEWORK_HANDLER_TIMEOUT}};async function defaultHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}let sfn,lambda;async function defaultStartExecution(req){return sfn||(sfn=new client_sfn_1.SFN(awsSdkConfig)),sfn.startExecution(req)}async function defaultInvokeFunction(req){lambda||(lambda=new client_lambda_1.Lambda(awsSdkConfig));try{return await lambda.invoke(req)}catch{return await(0,client_lambda_1.waitUntilFunctionActiveV2)({client:lambda,maxWaitTime:300},{FunctionName:req.FunctionName}),lambda.invoke(req)}}exports.startExecution=defaultStartExecution,exports.invokeFunction=defaultInvokeFunction,exports.httpRequest=defaultHttpRequest; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js new file mode 100644 index 000000000..47b472b09 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getEnv=getEnv,exports.log=log,exports.withRetries=withRetries,exports.parseJsonPayload=parseJsonPayload;function getEnv(name){const value=process.env[name];if(!value)throw new Error(`The environment variable "${name}" is not defined`);return value}function log(title,...args){console.log("[provider-framework]",title,...args.map(x=>typeof x=="object"?JSON.stringify(x,void 0,2):x))}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}function parseJsonPayload(payload){const text=new TextDecoder().decode(Buffer.from(payload??""));if(!text)return{};try{return JSON.parse(text)}catch{throw new Error(`return values from user-handlers must be JSON objects. got: "${text}"`)}} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/integ.json index 2389305ad..92c658f32 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "opilamapiFromAssetWithCognitoAuthIntegDefaultTestDeployAssert6E95D513" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/manifest.json index b12f283cc..2e1d76542 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c86b177ffa4723ddd32397461d8e123334ab78a3a6741117d3fd934118b37ad2.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/deb3e8f90da55cc27c194d4d5b99ad738fb069b55b1291d45f5e7574cfca1d42.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -491,7 +491,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -862,57 +862,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -921,7 +912,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -998,7 +992,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1142,7 +1136,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1171,7 +1168,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1235,7 +1235,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1269,7 +1272,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1292,7 +1298,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1322,6 +1331,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilam-apiFromAssetWithCognitoAuth.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilam-apiFromAssetWithCognitoAuth.assets.json index 4a496ed96..749782d72 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilam-apiFromAssetWithCognitoAuth.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilam-apiFromAssetWithCognitoAuth.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "8c48f41891550d16b8b5de60b76d4f7a2b045576775bc16e9b461062c830b50d": { "displayName": "ApiDefinitionAsset", @@ -85,16 +85,16 @@ } } }, - "c86b177ffa4723ddd32397461d8e123334ab78a3a6741117d3fd934118b37ad2": { + "deb3e8f90da55cc27c194d4d5b99ad738fb069b55b1291d45f5e7574cfca1d42": { "displayName": "opilam-apiFromAssetWithCognitoAuth Template", "source": { "path": "opilam-apiFromAssetWithCognitoAuth.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-8b65e281": { + "current_account-current_region-f0a272d3": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c86b177ffa4723ddd32397461d8e123334ab78a3a6741117d3fd934118b37ad2.json", + "objectKey": "deb3e8f90da55cc27c194d4d5b99ad738fb069b55b1291d45f5e7574cfca1d42.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilam-apiFromAssetWithCognitoAuth.template.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilam-apiFromAssetWithCognitoAuth.template.json index 8265f68d2..2c6d2adf9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilam-apiFromAssetWithCognitoAuth.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilam-apiFromAssetWithCognitoAuth.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -255,7 +255,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -427,7 +427,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "Timeout": 60, "TracingConfig": { "Mode": "Active" diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilamapiFromAssetWithCognitoAuthIntegDefaultTestDeployAssert6E95D513.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilamapiFromAssetWithCognitoAuthIntegDefaultTestDeployAssert6E95D513.assets.json index f46c2a612..9619dd2f5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilamapiFromAssetWithCognitoAuthIntegDefaultTestDeployAssert6E95D513.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/opilamapiFromAssetWithCognitoAuthIntegDefaultTestDeployAssert6E95D513.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "opilamapiFromAssetWithCognitoAuthIntegDefaultTestDeployAssert6E95D513 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/tree.json index 3d028ac4b..a3ad811c8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromAssetWithCognitoAuth.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"opilam-apiFromAssetWithCognitoAuth":{"id":"opilam-apiFromAssetWithCognitoAuth","path":"opilam-apiFromAssetWithCognitoAuth","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-apiFromAssetWithCognitoAuth/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.86.0"},"children":{"MessagesHandlerApiFunction0ServiceRole":{"id":"MessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerApiFunction0ServiceRole":{"id":"ImportMessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/ImportMessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerApiFunction0":{"id":"MessagesHandlerApiFunction0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0inlinePolicyAddedToExecutionRole035380347","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"PhotosHandlerApiFunction1ServiceRole":{"id":"PhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosHandlerApiFunction1ServiceRole":{"id":"ImportPhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/ImportPhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosHandlerApiFunction1":{"id":"PhotosHandlerApiFunction1","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1inlinePolicyAddedToExecutionRole0D189A0E2","roles":[{"Ref":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs20.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/8c48f41891550d16b8b5de60b76d4f7a2b045576775bc16e9b461062c830b50d.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.206.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD0775d25e717744ab7d508aee3a1c3b7aa9b2"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromAssetWithCognitoAuth/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetWithCognitoAuth/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetWithCognitoAuth/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"opilam-apiFromAssetWithCognitoAuth":{"id":"opilam-apiFromAssetWithCognitoAuth","path":"opilam-apiFromAssetWithCognitoAuth","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-apiFromAssetWithCognitoAuth/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.95.1"},"children":{"MessagesHandlerApiFunction0ServiceRole":{"id":"MessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerApiFunction0ServiceRole":{"id":"ImportMessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/ImportMessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerApiFunction0":{"id":"MessagesHandlerApiFunction0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0inlinePolicyAddedToExecutionRole035380347","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"PhotosHandlerApiFunction1ServiceRole":{"id":"PhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosHandlerApiFunction1ServiceRole":{"id":"ImportPhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/ImportPhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosHandlerApiFunction1":{"id":"PhotosHandlerApiFunction1","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1inlinePolicyAddedToExecutionRole0D189A0E2","roles":[{"Ref":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs22.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/8c48f41891550d16b8b5de60b76d4f7a2b045576775bc16e9b461062c830b50d.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.223.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD0775d25e717744ab7d508aee3a1c3b7aa9b2"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromAssetWithCognitoAuth/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromAssetWithCognitoAuth/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetWithCognitoAuth/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromAssetWithCognitoAuth/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromAssetWithCognitoAuth/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs new file mode 100644 index 000000000..55e35c614 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled POST from messages lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled GET from messages lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs new file mode 100644 index 000000000..220496109 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/asset.654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled POST from photos lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "successfully handled GET from photos lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/integ.json index 9d96c65bd..9313e388d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "opilam-apiFromInlineDefinition/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "opilamapiFromInlineDefinitionIntegDefaultTestDeployAssertCF0E111E" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/manifest.json index 9a0932f52..36e4b34a7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6e241ffbf88db1c34efb27121094abafeed1e0f247cf711cec78106cc560c180.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/70157624b394778429613b9bc9c36b89edf2866870be2e398b35c3aa7775730d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -492,57 +492,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -551,7 +542,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -628,7 +622,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -772,7 +766,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -801,7 +798,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -865,7 +865,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -899,7 +902,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -922,7 +928,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -952,6 +961,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilam-apiFromInlineDefinition.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilam-apiFromInlineDefinition.assets.json index 813200b35..6fdcec078 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilam-apiFromInlineDefinition.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilam-apiFromInlineDefinition.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e": { "displayName": "OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code", @@ -29,16 +29,16 @@ } } }, - "6e241ffbf88db1c34efb27121094abafeed1e0f247cf711cec78106cc560c180": { + "70157624b394778429613b9bc9c36b89edf2866870be2e398b35c3aa7775730d": { "displayName": "opilam-apiFromInlineDefinition Template", "source": { "path": "opilam-apiFromInlineDefinition.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-f534b50b": { + "current_account-current_region-1b9097bb": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "6e241ffbf88db1c34efb27121094abafeed1e0f247cf711cec78106cc560c180.json", + "objectKey": "70157624b394778429613b9bc9c36b89edf2866870be2e398b35c3aa7775730d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilam-apiFromInlineDefinition.template.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilam-apiFromInlineDefinition.template.json index c9e5baf8d..df9a3e3ca 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilam-apiFromInlineDefinition.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilam-apiFromInlineDefinition.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -255,7 +255,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilamapiFromInlineDefinitionIntegDefaultTestDeployAssertCF0E111E.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilamapiFromInlineDefinitionIntegDefaultTestDeployAssertCF0E111E.assets.json index 0da7e0301..854e63d24 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilamapiFromInlineDefinitionIntegDefaultTestDeployAssertCF0E111E.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/opilamapiFromInlineDefinitionIntegDefaultTestDeployAssertCF0E111E.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "opilamapiFromInlineDefinitionIntegDefaultTestDeployAssertCF0E111E Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/tree.json index 87a024a10..e70618cee 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-apiFromInlineDefinition.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"opilam-apiFromInlineDefinition":{"id":"opilam-apiFromInlineDefinition","path":"opilam-apiFromInlineDefinition","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.86.0"},"children":{"MessagesHandlerApiFunction0ServiceRole":{"id":"MessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerApiFunction0ServiceRole":{"id":"ImportMessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/ImportMessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerApiFunction0":{"id":"MessagesHandlerApiFunction0","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0inlinePolicyAddedToExecutionRole035380347","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"PhotosHandlerApiFunction1ServiceRole":{"id":"PhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosHandlerApiFunction1ServiceRole":{"id":"ImportPhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/ImportPhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosHandlerApiFunction1":{"id":"PhotosHandlerApiFunction1","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1inlinePolicyAddedToExecutionRole0D189A0E2","roles":[{"Ref":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.206.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"body":{"openapi":"3.0.1","info":{"title":"api","version":"2023-02-20T20:46:08Z"},"paths":{"/messages":{"get":{"x-amazon-apigateway-integration":{"httpMethod":"POST","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"/invocations"]]},"passthroughBehavior":"when_no_match","type":"aws_proxy"},"x-amazon-apigateway-auth":{"type":"AWS_IAM"}},"post":{"x-amazon-apigateway-integration":{"httpMethod":"POST","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"/invocations"]]},"passthroughBehavior":"when_no_match","type":"aws_proxy"},"x-amazon-apigateway-auth":{"type":"AWS_IAM"}}},"/photos":{"get":{"x-amazon-apigateway-integration":{"httpMethod":"POST","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"/invocations"]]},"passthroughBehavior":"when_no_match","type":"aws_proxy"},"x-amazon-apigateway-auth":{"type":"AWS_IAM"}},"post":{"x-amazon-apigateway-integration":{"httpMethod":"POST","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"/invocations"]]},"passthroughBehavior":"when_no_match","type":"aws_proxy"},"x-amazon-apigateway-auth":{"type":"AWS_IAM"}}}}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD07754bd94750334d61fd5d4bd8fcdf375863"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromInlineDefinition/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromInlineDefinition/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromInlineDefinition/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"opilam-apiFromInlineDefinition":{"id":"opilam-apiFromInlineDefinition","path":"opilam-apiFromInlineDefinition","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.95.1"},"children":{"MessagesHandlerApiFunction0ServiceRole":{"id":"MessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerApiFunction0ServiceRole":{"id":"ImportMessagesHandlerApiFunction0ServiceRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/ImportMessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerApiFunction0":{"id":"MessagesHandlerApiFunction0","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0inlinePolicyAddedToExecutionRole035380347","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"PhotosHandlerApiFunction1ServiceRole":{"id":"PhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPhotosHandlerApiFunction1ServiceRole":{"id":"ImportPhotosHandlerApiFunction1ServiceRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/ImportPhotosHandlerApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"PhotosHandlerApiFunction1":{"id":"PhotosHandlerApiFunction1","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"654d49d4ea47a6be417d57b94dc0310933d0e971a3e48a3080c3e48487af3e50.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1inlinePolicyAddedToExecutionRole0D189A0E2","roles":[{"Ref":"OpenApiGatewayToLambdaPhotosHandlerApiFunction1ServiceRoleA572C749"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/PhotosHandlerApiFunction1/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.223.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"body":{"openapi":"3.0.1","info":{"title":"api","version":"2023-02-20T20:46:08Z"},"paths":{"/messages":{"get":{"x-amazon-apigateway-integration":{"httpMethod":"POST","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"/invocations"]]},"passthroughBehavior":"when_no_match","type":"aws_proxy"},"x-amazon-apigateway-auth":{"type":"AWS_IAM"}},"post":{"x-amazon-apigateway-integration":{"httpMethod":"POST","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"/invocations"]]},"passthroughBehavior":"when_no_match","type":"aws_proxy"},"x-amazon-apigateway-auth":{"type":"AWS_IAM"}}},"/photos":{"get":{"x-amazon-apigateway-integration":{"httpMethod":"POST","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"/invocations"]]},"passthroughBehavior":"when_no_match","type":"aws_proxy"},"x-amazon-apigateway-auth":{"type":"AWS_IAM"}},"post":{"x-amazon-apigateway-integration":{"httpMethod":"POST","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["OpenApiGatewayToLambdaPhotosHandlerApiFunction1C42C52E8","Arn"]},"/invocations"]]},"passthroughBehavior":"when_no_match","type":"aws_proxy"},"x-amazon-apigateway-auth":{"type":"AWS_IAM"}}}}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD07754bd94750334d61fd5d4bd8fcdf375863"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-apiFromInlineDefinition/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-apiFromInlineDefinition/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromInlineDefinition/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-apiFromInlineDefinition/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-apiFromInlineDefinition/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs new file mode 100644 index 000000000..55e35c614 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e/index.mjs @@ -0,0 +1,16 @@ +export const handler = async (event) => { + switch (event.httpMethod) { + case 'POST': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled POST from messages lambda"}) + }; + case 'GET': + return { + statusCode: 200, + body: JSON.stringify({"message": "NEW - successfully handled GET from messages lambda"}) + }; + default: + throw new Error(`cannot handle httpMethod: ${event.httpMethod}`); + } +}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js new file mode 100644 index 000000000..ebaf0b809 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.js @@ -0,0 +1,71 @@ +"use strict"; +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.handler = void 0; +exports.replaceTarget = replaceTarget; +const client_s3_1 = require("@aws-sdk/client-s3"); +const crypto = require("crypto"); +const s3Client = new client_s3_1.S3Client({ region: process.env.REGION }); +const handler = async (event, context) => { + let status = 'SUCCESS'; + let responseData = {}; + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + const getObjectResponse = await s3Client.send(new client_s3_1.GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + let template = await getObjectResponse.Body?.transformToString(); + templateValues.forEach((templateValue) => { + template = replaceTarget(template, templateValue); + }); + await s3Client.send(new client_s3_1.PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + responseData = { + TemplateOutputKey: templateOutputKey + }; + } + catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; +exports.handler = handler; +function replaceTarget(template, templateValue) { + template = template?.replace(new RegExp(`\\b${templateValue.id}\\b`, 'g'), templateValue.value); + return template; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQTRESCxzQ0FNQztBQWhFRCxrREFBa0Y7QUFDbEYsaUNBQWlDO0FBRWpDLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFdkQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQVUsRUFBRSxPQUFZLEVBQUUsRUFBRTtJQUN4RCxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDdkIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRXRCLDBGQUEwRjtJQUMxRiw0RkFBNEY7SUFDNUYsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUMxRixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUN6RSxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuRSxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztZQUMzRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ2pFLE1BQU0sRUFBRSxtQkFBbUI7Z0JBQzNCLEdBQUcsRUFBRSxnQkFBZ0I7YUFDdEIsQ0FBQyxDQUFDLENBQUM7WUFFSixJQUFJLFFBQVEsR0FBRyxNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1lBRWpFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFrQixFQUFFLEVBQUU7Z0JBQzVDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7Z0JBQ3ZDLE1BQU0sRUFBRSxvQkFBb0I7Z0JBQzVCLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQyxDQUFDLENBQUM7WUFFSixZQUFZLEdBQUc7Z0JBQ2IsaUJBQWlCLEVBQUUsaUJBQWlCO2FBQ3JDLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFDbEIsWUFBWSxHQUFHO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3BDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsYUFBYTtRQUNyRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7UUFDMUMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQW5EVyxRQUFBLE9BQU8sV0FtRGxCO0FBRUYsU0FBZ0IsYUFBYSxDQUFDLFFBQTRCLEVBQUUsYUFBa0I7SUFDNUUsUUFBUSxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUM1QyxhQUFhLENBQUMsS0FBSyxDQUNwQixDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFMzQ2xpZW50LCBHZXRPYmplY3RDb21tYW5kLCBQdXRPYmplY3RDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmNvbnN0IHMzQ2xpZW50ID0gbmV3IFMzQ2xpZW50KHsgcmVnaW9uOiBwcm9jZXNzLmVudi5SRUdJT04gfSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBhbnksIGNvbnRleHQ6IGFueSkgPT4ge1xuICBsZXQgc3RhdHVzID0gJ1NVQ0NFU1MnO1xuICBsZXQgcmVzcG9uc2VEYXRhID0ge307XG5cbiAgLy8gVGhlc2UgYXJlIHRoZSBzdGFuZGFyZCBDcmVhdGUvVXBkYXRlL0RlbGV0ZSBjdXN0b20gcmVzb3VyY2UgcmVxdWVzdCB0eXBlcyBkZWZpbmVkIGhlcmU6XG4gIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2NycGctcmVmLXJlcXVlc3R0eXBlcy5odG1sXG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ0NyZWF0ZScgfHwgZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdVcGRhdGUnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlVmFsdWVzID0gSlNPTi5wYXJzZShldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVWYWx1ZXMpLnRlbXBsYXRlVmFsdWVzO1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEJ1Y2tldCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0QnVja2V0O1xuICAgICAgY29uc3QgdGVtcGxhdGVJbnB1dEtleSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5UZW1wbGF0ZUlucHV0S2V5O1xuICAgICAgY29uc3QgdGVtcGxhdGVPdXRwdXRCdWNrZXQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVtcGxhdGVPdXRwdXRCdWNrZXQ7XG4gICAgICBjb25zdCB0ZW1wbGF0ZU91dHB1dEtleSA9IGNyeXB0by5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgICBjb25zdCBnZXRPYmplY3RSZXNwb25zZSA9IGF3YWl0IHMzQ2xpZW50LnNlbmQobmV3IEdldE9iamVjdENvbW1hbmQoe1xuICAgICAgICBCdWNrZXQ6IHRlbXBsYXRlSW5wdXRCdWNrZXQsXG4gICAgICAgIEtleTogdGVtcGxhdGVJbnB1dEtleVxuICAgICAgfSkpO1xuXG4gICAgICBsZXQgdGVtcGxhdGUgPSBhd2FpdCBnZXRPYmplY3RSZXNwb25zZS5Cb2R5Py50cmFuc2Zvcm1Ub1N0cmluZygpO1xuXG4gICAgICB0ZW1wbGF0ZVZhbHVlcy5mb3JFYWNoKCh0ZW1wbGF0ZVZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgdGVtcGxhdGUgPSByZXBsYWNlVGFyZ2V0KHRlbXBsYXRlLCB0ZW1wbGF0ZVZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgQnVja2V0OiB0ZW1wbGF0ZU91dHB1dEJ1Y2tldCxcbiAgICAgICAgS2V5OiB0ZW1wbGF0ZU91dHB1dEtleSxcbiAgICAgICAgQm9keTogdGVtcGxhdGVcbiAgICAgIH0pKTtcblxuICAgICAgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICBUZW1wbGF0ZU91dHB1dEtleTogdGVtcGxhdGVPdXRwdXRLZXlcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzdGF0dXMgPSAnRkFJTEVEJztcbiAgICAgIHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgRXJyb3I6IGVyclxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFN0YXR1czogc3RhdHVzLFxuICAgIFJlYXNvbjogSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKSxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCA/PyBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgU3RhY2tJZDogZXZlbnQuU3RhY2tJZCxcbiAgICBSZXF1ZXN0SWQ6IGV2ZW50LlJlcXVlc3RJZCxcbiAgICBMb2dpY2FsUmVzb3VyY2VJZDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gICAgRGF0YTogcmVzcG9uc2VEYXRhLFxuICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VUYXJnZXQodGVtcGxhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCwgdGVtcGxhdGVWYWx1ZTogYW55KSB7XG4gIHRlbXBsYXRlID0gdGVtcGxhdGU/LnJlcGxhY2UoXG4gICAgbmV3IFJlZ0V4cChgXFxcXGIke3RlbXBsYXRlVmFsdWUuaWR9XFxcXGJgLCAnZycpLFxuICAgIHRlbXBsYXRlVmFsdWUudmFsdWVcbiAgKTtcbiAgcmV0dXJuIHRlbXBsYXRlO1xufVxuIl19 \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts new file mode 100644 index 000000000..60953c7fc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3"; +import * as crypto from 'crypto'; + +const s3Client = new S3Client({ region: process.env.REGION }); + +export const handler = async (event: any, context: any) => { + let status = 'SUCCESS'; + let responseData = {}; + + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + + const getObjectResponse = await s3Client.send(new GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + + let template = await getObjectResponse.Body?.transformToString(); + + templateValues.forEach((templateValue: any) => { + template = replaceTarget(template, templateValue); + }); + + await s3Client.send(new PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + + responseData = { + TemplateOutputKey: templateOutputKey + }; + } catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +export function replaceTarget(template: string | undefined, templateValue: any) { + template = template?.replace( + new RegExp(`\\b${templateValue.id}\\b`, 'g'), + templateValue.value + ); + return template; +} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js new file mode 100644 index 000000000..17c9ea7df --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Retry=exports.includeStackTraces=exports.MISSING_PHYSICAL_ID_MARKER=exports.CREATE_FAILED_PHYSICAL_ID_MARKER=void 0,exports.submitResponse=submitResponse,exports.safeHandler=safeHandler,exports.redactDataFromPayload=redactDataFromPayload;const url=require("url"),outbound_1=require("./outbound"),util_1=require("./util");exports.CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",exports.MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function submitResponse(status,event,options={}){const json={Status:status,Reason:options.reason||status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||exports.MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:options.noEcho,Data:event.Data},responseBody=JSON.stringify(json),parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;options?.noEcho?(0,util_1.log)("submit redacted response to cloudformation",loggingSafeUrl,redactDataFromPayload(json)):(0,util_1.log)("submit response to cloudformation",loggingSafeUrl,json);const retryOptions={attempts:5,sleep:1e3};await(0,util_1.withRetries)(retryOptions,outbound_1.httpRequest)({hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}},responseBody)}exports.includeStackTraces=!0;function safeHandler(block){return async event=>{if(event.RequestType==="Delete"&&event.PhysicalResourceId===exports.CREATE_FAILED_PHYSICAL_ID_MARKER){(0,util_1.log)("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{await block(event)}catch(e){if(e instanceof Retry)throw(0,util_1.log)("retry requested by handler"),e;event.PhysicalResourceId||(event.RequestType==="Create"?((0,util_1.log)("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),event.PhysicalResourceId=exports.CREATE_FAILED_PHYSICAL_ID_MARKER):(0,util_1.log)(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify({...event,ResponseURL:"..."})}`)),await submitResponse("FAILED",event,{reason:exports.includeStackTraces?e.stack:e.message})}}}function redactDataFromPayload(payload){const redactedPayload=JSON.parse(JSON.stringify(payload));if(redactedPayload.Data){const keys=Object.keys(redactedPayload.Data);for(const key of keys)redactedPayload.Data[key]="*****"}return redactedPayload}class Retry extends Error{}exports.Retry=Retry; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js new file mode 100644 index 000000000..5c78d63db --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME=exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME=exports.FRAMEWORK_ON_EVENT_HANDLER_NAME=exports.WAITER_STATE_MACHINE_ARN_ENV=exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV=exports.USER_ON_EVENT_FUNCTION_ARN_ENV=void 0,exports.USER_ON_EVENT_FUNCTION_ARN_ENV="USER_ON_EVENT_FUNCTION_ARN",exports.USER_IS_COMPLETE_FUNCTION_ARN_ENV="USER_IS_COMPLETE_FUNCTION_ARN",exports.WAITER_STATE_MACHINE_ARN_ENV="WAITER_STATE_MACHINE_ARN",exports.FRAMEWORK_ON_EVENT_HANDLER_NAME="onEvent",exports.FRAMEWORK_IS_COMPLETE_HANDLER_NAME="isComplete",exports.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME="onTimeout"; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js new file mode 100644 index 000000000..952048e6f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js @@ -0,0 +1,3 @@ +"use strict";const cfnResponse=require("./cfn-response"),consts=require("./consts"),outbound_1=require("./outbound"),util_1=require("./util");async function onEvent(cfnRequest){const sanitizedRequest={...cfnRequest,ResponseURL:"..."};(0,util_1.log)("onEventHandler",sanitizedRequest),cfnRequest.ResourceProperties=cfnRequest.ResourceProperties||{};const onEventResult=await invokeUserFunction(consts.USER_ON_EVENT_FUNCTION_ARN_ENV,sanitizedRequest,cfnRequest.ResponseURL);onEventResult?.NoEcho?(0,util_1.log)("redacted onEvent returned:",cfnResponse.redactDataFromPayload(onEventResult)):(0,util_1.log)("onEvent returned:",onEventResult);const resourceEvent=createResponseEvent(cfnRequest,onEventResult),sanitizedEvent={...resourceEvent,ResponseURL:"..."};if(onEventResult?.NoEcho?(0,util_1.log)("readacted event:",cfnResponse.redactDataFromPayload(sanitizedEvent)):(0,util_1.log)("event:",sanitizedEvent),!process.env[consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV])return cfnResponse.submitResponse("SUCCESS",resourceEvent,{noEcho:resourceEvent.NoEcho});const waiter={stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId,input:JSON.stringify(resourceEvent)};(0,util_1.log)("starting waiter",{stateMachineArn:(0,util_1.getEnv)(consts.WAITER_STATE_MACHINE_ARN_ENV),name:resourceEvent.RequestId}),await(0,outbound_1.startExecution)(waiter)}async function isComplete(event){const sanitizedRequest={...event,ResponseURL:"..."};event?.NoEcho?(0,util_1.log)("redacted isComplete request",cfnResponse.redactDataFromPayload(sanitizedRequest)):(0,util_1.log)("isComplete",sanitizedRequest);const isCompleteResult=await invokeUserFunction(consts.USER_IS_COMPLETE_FUNCTION_ARN_ENV,sanitizedRequest,event.ResponseURL);if(event?.NoEcho?(0,util_1.log)("redacted user isComplete returned:",cfnResponse.redactDataFromPayload(isCompleteResult)):(0,util_1.log)("user isComplete returned:",isCompleteResult),!isCompleteResult.IsComplete)throw isCompleteResult.Data&&Object.keys(isCompleteResult.Data).length>0?new Error('"Data" is not allowed if "IsComplete" is "False"'):new cfnResponse.Retry(JSON.stringify(event));const response={...event,...isCompleteResult,Data:{...event.Data,...isCompleteResult.Data}};await cfnResponse.submitResponse("SUCCESS",response,{noEcho:event.NoEcho})}async function onTimeout(timeoutEvent){(0,util_1.log)("timeoutHandler",timeoutEvent);const isCompleteRequest=JSON.parse(JSON.parse(timeoutEvent.Cause).errorMessage);await cfnResponse.submitResponse("FAILED",isCompleteRequest,{reason:"Operation timed out"})}async function invokeUserFunction(functionArnEnv,sanitizedPayload,responseUrl){const functionArn=(0,util_1.getEnv)(functionArnEnv);(0,util_1.log)(`executing user function ${functionArn} with payload`,sanitizedPayload);const resp=await(0,outbound_1.invokeFunction)({FunctionName:functionArn,Payload:JSON.stringify({...sanitizedPayload,ResponseURL:responseUrl})});(0,util_1.log)("user function response:",resp,typeof resp);const jsonPayload=(0,util_1.parseJsonPayload)(resp.Payload);if(resp.FunctionError){(0,util_1.log)("user function threw an error:",resp.FunctionError);const errorMessage=jsonPayload.errorMessage||"error",arn=functionArn.split(":"),functionName=arn[arn.length-1],message=[errorMessage,"",`Logs: /aws/lambda/${functionName}`,""].join(` +`),e=new Error(message);throw jsonPayload.trace&&(e.stack=[message,...jsonPayload.trace.slice(1)].join(` +`)),e}return jsonPayload}function createResponseEvent(cfnRequest,onEventResult){onEventResult=onEventResult||{};const physicalResourceId=onEventResult.PhysicalResourceId||defaultPhysicalResourceId(cfnRequest);if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}" during deletion`);return cfnRequest.RequestType==="Update"&&physicalResourceId!==cfnRequest.PhysicalResourceId&&(0,util_1.log)(`UPDATE: changing physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${onEventResult.PhysicalResourceId}"`),{...cfnRequest,...onEventResult,PhysicalResourceId:physicalResourceId}}function defaultPhysicalResourceId(req){switch(req.RequestType){case"Create":return req.RequestId;case"Update":case"Delete":return req.PhysicalResourceId;default:throw new Error(`Invalid "RequestType" in request "${JSON.stringify(req)}"`)}}module.exports={[consts.FRAMEWORK_ON_EVENT_HANDLER_NAME]:cfnResponse.safeHandler(onEvent),[consts.FRAMEWORK_IS_COMPLETE_HANDLER_NAME]:cfnResponse.safeHandler(isComplete),[consts.FRAMEWORK_ON_TIMEOUT_HANDLER_NAME]:onTimeout}; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js new file mode 100644 index 000000000..3c900428d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.httpRequest=exports.invokeFunction=exports.startExecution=void 0;const https=require("https"),client_lambda_1=require("@aws-sdk/client-lambda"),client_sfn_1=require("@aws-sdk/client-sfn"),FRAMEWORK_HANDLER_TIMEOUT=9e5,awsSdkConfig={httpOptions:{timeout:FRAMEWORK_HANDLER_TIMEOUT}};async function defaultHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}let sfn,lambda;async function defaultStartExecution(req){return sfn||(sfn=new client_sfn_1.SFN(awsSdkConfig)),sfn.startExecution(req)}async function defaultInvokeFunction(req){lambda||(lambda=new client_lambda_1.Lambda(awsSdkConfig));try{return await lambda.invoke(req)}catch{return await(0,client_lambda_1.waitUntilFunctionActiveV2)({client:lambda,maxWaitTime:300},{FunctionName:req.FunctionName}),lambda.invoke(req)}}exports.startExecution=defaultStartExecution,exports.invokeFunction=defaultInvokeFunction,exports.httpRequest=defaultHttpRequest; diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js new file mode 100644 index 000000000..47b472b09 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getEnv=getEnv,exports.log=log,exports.withRetries=withRetries,exports.parseJsonPayload=parseJsonPayload;function getEnv(name){const value=process.env[name];if(!value)throw new Error(`The environment variable "${name}" is not defined`);return value}function log(title,...args){console.log("[provider-framework]",title,...args.map(x=>typeof x=="object"?JSON.stringify(x,void 0,2):x))}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}function parseJsonPayload(payload){const text=new TextDecoder().decode(Buffer.from(payload??""));if(!text)return{};try{return JSON.parse(text)}catch{throw new Error(`return values from user-handlers must be JSON objects. got: "${text}"`)}} diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/integ.json index 473d31b85..3bc2f59f0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "opilam-substringUriNames/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "opilamsubstringUriNamesIntegDefaultTestDeployAssert0F3F31AC" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/manifest.json index 6c9ebf6c3..ebdf777c3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5e8ba6276f81a60594263151ea7468411c79c1accc1543feb6a98b2a835894ac.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/35624466503a065f4a42ccba3f1f121c60e3b2c762c039fd59b2d7809150d132.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -605,7 +605,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -984,57 +984,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -1043,7 +1034,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -1120,7 +1114,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1264,7 +1258,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1293,7 +1290,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1357,7 +1357,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1391,7 +1394,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1414,7 +1420,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1444,6 +1453,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilam-substringUriNames.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilam-substringUriNames.assets.json index f74f96f89..349155d27 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilam-substringUriNames.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilam-substringUriNames.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "ed35d2706e8ad9a78b03dd5d76fe0fc020e594db8677fdd666e3d484224ce62a": { "displayName": "ApiDefinitionAsset", @@ -71,16 +71,16 @@ } } }, - "5e8ba6276f81a60594263151ea7468411c79c1accc1543feb6a98b2a835894ac": { + "35624466503a065f4a42ccba3f1f121c60e3b2c762c039fd59b2d7809150d132": { "displayName": "opilam-substringUriNames Template", "source": { "path": "opilam-substringUriNames.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-7ae9e63e": { + "current_account-current_region-56d65d28": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "5e8ba6276f81a60594263151ea7468411c79c1accc1543feb6a98b2a835894ac.json", + "objectKey": "35624466503a065f4a42ccba3f1f121c60e3b2c762c039fd59b2d7809150d132.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilam-substringUriNames.template.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilam-substringUriNames.template.json index ccec52e5f..f8f777d45 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilam-substringUriNames.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilam-substringUriNames.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -255,7 +255,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -426,7 +426,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } @@ -598,7 +598,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "Timeout": 60, "TracingConfig": { "Mode": "Active" diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilamsubstringUriNamesIntegDefaultTestDeployAssert0F3F31AC.assets.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilamsubstringUriNamesIntegDefaultTestDeployAssert0F3F31AC.assets.json index b26f4c060..0d92cb9e7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilamsubstringUriNamesIntegDefaultTestDeployAssert0F3F31AC.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/opilamsubstringUriNamesIntegDefaultTestDeployAssert0F3F31AC.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "opilamsubstringUriNamesIntegDefaultTestDeployAssert0F3F31AC Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/tree.json index 0af0257a9..2cd483e69 100644 --- a/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-openapigateway-lambda/test/integ.opilam-substringUriNames.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"opilam-substringUriNames":{"id":"opilam-substringUriNames","path":"opilam-substringUriNames","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-substringUriNames/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-substringUriNames/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.86.0"},"children":{"MessagesHandlerApiFunction0ServiceRole":{"id":"MessagesHandlerApiFunction0ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerApiFunction0ServiceRole":{"id":"ImportMessagesHandlerApiFunction0ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/ImportMessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerApiFunction0":{"id":"MessagesHandlerApiFunction0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0inlinePolicyAddedToExecutionRole035380347","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"MessagesHandlerPostApiFunction1ServiceRole":{"id":"MessagesHandlerPostApiFunction1ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerPostApiFunction1ServiceRole":{"id":"ImportMessagesHandlerPostApiFunction1ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1ServiceRole/ImportMessagesHandlerPostApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerPostApiFunction1":{"id":"MessagesHandlerPostApiFunction1","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerPostApiFunction1ServiceRole5FC4A24F","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerPostApiFunction1inlinePolicyAddedToExecutionRole0555ACC7F","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerPostApiFunction1ServiceRole5FC4A24F"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerPostApiFunction1076A18D3","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"DeleteMessagesHandlerApiFunction2ServiceRole":{"id":"DeleteMessagesHandlerApiFunction2ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportDeleteMessagesHandlerApiFunction2ServiceRole":{"id":"ImportDeleteMessagesHandlerApiFunction2ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2ServiceRole/ImportDeleteMessagesHandlerApiFunction2ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"DeleteMessagesHandlerApiFunction2":{"id":"DeleteMessagesHandlerApiFunction2","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaDeleteMessagesHandlerApiFunction2ServiceRoleD6765442","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaDeleteMessagesHandlerApiFunction2inlinePolicyAddedToExecutionRole09E29D903","roles":[{"Ref":"OpenApiGatewayToLambdaDeleteMessagesHandlerApiFunction2ServiceRoleD6765442"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaDeleteMessagesHandlerApiFunction2BADD028F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs20.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/ed35d2706e8ad9a78b03dd5d76fe0fc020e594db8677fdd666e3d484224ce62a.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.206.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD0775949773d67d0e5056b02725b3304ec527"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.206.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-substringUriNames/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-substringUriNames/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-substringUriNames/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-substringUriNames/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-substringUriNames/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-substringUriNames/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-substringUriNames/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-substringUriNames/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"opilam-substringUriNames":{"id":"opilam-substringUriNames","path":"opilam-substringUriNames","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"ApiDefinitionAsset":{"id":"ApiDefinitionAsset","path":"opilam-substringUriNames/ApiDefinitionAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/ApiDefinitionAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/ApiDefinitionAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"OpenApiGatewayToLambda":{"id":"OpenApiGatewayToLambda","path":"opilam-substringUriNames/OpenApiGatewayToLambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-openapigateway-lambda.OpenApiGatewayToLambda","version":"2.95.1"},"children":{"MessagesHandlerApiFunction0ServiceRole":{"id":"MessagesHandlerApiFunction0ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerApiFunction0ServiceRole":{"id":"ImportMessagesHandlerApiFunction0ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/ImportMessagesHandlerApiFunction0ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerApiFunction0":{"id":"MessagesHandlerApiFunction0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0inlinePolicyAddedToExecutionRole035380347","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerApiFunction0ServiceRoleB5DC63A9"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerApiFunction0/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerApiFunction0E78C5307","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"MessagesHandlerPostApiFunction1ServiceRole":{"id":"MessagesHandlerPostApiFunction1ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportMessagesHandlerPostApiFunction1ServiceRole":{"id":"ImportMessagesHandlerPostApiFunction1ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1ServiceRole/ImportMessagesHandlerPostApiFunction1ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"MessagesHandlerPostApiFunction1":{"id":"MessagesHandlerPostApiFunction1","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerPostApiFunction1ServiceRole5FC4A24F","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaMessagesHandlerPostApiFunction1inlinePolicyAddedToExecutionRole0555ACC7F","roles":[{"Ref":"OpenApiGatewayToLambdaMessagesHandlerPostApiFunction1ServiceRole5FC4A24F"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-substringUriNames/OpenApiGatewayToLambda/MessagesHandlerPostApiFunction1/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaMessagesHandlerPostApiFunction1076A18D3","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"DeleteMessagesHandlerApiFunction2ServiceRole":{"id":"DeleteMessagesHandlerApiFunction2ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportDeleteMessagesHandlerApiFunction2ServiceRole":{"id":"ImportDeleteMessagesHandlerApiFunction2ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2ServiceRole/ImportDeleteMessagesHandlerApiFunction2ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"DeleteMessagesHandlerApiFunction2":{"id":"DeleteMessagesHandlerApiFunction2","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ac0535f48d1ada09cde7f11fc72195d9d32da75a2719aeb20c4e5c45b28e62e.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["OpenApiGatewayToLambdaDeleteMessagesHandlerApiFunction2ServiceRoleD6765442","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaDeleteMessagesHandlerApiFunction2inlinePolicyAddedToExecutionRole09E29D903","roles":[{"Ref":"OpenApiGatewayToLambdaDeleteMessagesHandlerApiFunction2ServiceRoleD6765442"}]}}}}},"OpenApiGatewayToLambdaPermitAPIGInvocation":{"id":"OpenApiGatewayToLambdaPermitAPIGInvocation","path":"opilam-substringUriNames/OpenApiGatewayToLambda/DeleteMessagesHandlerApiFunction2/OpenApiGatewayToLambdaPermitAPIGInvocation","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["OpenApiGatewayToLambdaDeleteMessagesHandlerApiFunction2BADD028F","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"/*/*"]]}}}}}},"ApiOutputAsset":{"id":"ApiOutputAsset","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85","Arn"]},"runtime":"nodejs22.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaLambdaFunctioninlinePolicyAddedToExecutionRole02B56CE3C","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}}}},"ApiTemplateWriterPolicy":{"id":"ApiTemplateWriterPolicy","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/ed35d2706e8ad9a78b03dd5d76fe0fc020e594db8677fdd666e3d484224ce62a.yaml"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterPolicy5B3085E5","roles":[{"Ref":"OpenApiGatewayToLambdaLambdaFunctionServiceRoleACE09A85"}]}}}}},"ApiTemplateWriterProvider":{"id":"ApiTemplateWriterProvider","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicyB630DBDA","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}},"Code":{"id":"Code","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaFunctionC7227471","Arn"]}}],"Version":"2012-10-17"},"policyName":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole03000DF90","roles":[{"Ref":"OpenApiGatewayToLambdaApiTemplateWriterProviderframeworkonEventServiceRoleFEE201A1"}]}}}}}}}}},"ApiTemplateWriterCustomResource":{"id":"ApiTemplateWriterCustomResource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"ApiAccessLogGroup":{"id":"ApiAccessLogGroup","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiAccessLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/ApiAccessLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{}}}}},"SpecRestApi":{"id":"SpecRestApi","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.SpecRestApi","version":"2.223.0","metadata":[{"cloudWatchRole":false,"deployOptions":{"accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true},"restApiName":"*","apiDefinition":"*"}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"bodyS3Location":{"bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"key":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiTemplateWriterCustomResource957D1BA4","TemplateOutputKey"]}},"name":{"Fn::Join":["",["OpenApiGatewayToLambda-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}},"Default":{"id":"Default","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]}},"Deployment":{"id":"Deployment","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]},{"addToLogicalId":["*"]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*","accessLogDestination":"*","accessLogFormat":"*","loggingLevel":"INFO","dataTraceEnabled":false,"tracingEnabled":true}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"accessLogSetting":{"destinationArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaApiAccessLogGroupE21284EC","Arn"]},"format":"{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"},"deploymentId":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentC8BD0775949773d67d0e5056b02725b3304ec527"},"methodSettings":[{"httpMethod":"*","resourcePath":"/*","dataTraceEnabled":false,"loggingLevel":"INFO"}],"restApiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stageName":"prod","tracingEnabled":true}}}}},"Endpoint":{"id":"Endpoint","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"UsagePlan":{"id":"UsagePlan","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/UsagePlan","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.UsagePlan","version":"2.223.0","metadata":[{"apiStages":[{"api":"*"}]}]},"children":{"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/SpecRestApi/UsagePlan/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnUsagePlan","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::UsagePlan","aws:cdk:cloudformation:props":{"apiStages":[{"apiId":{"Ref":"OpenApiGatewayToLambdaSpecRestApi27C18064"},"stage":{"Ref":"OpenApiGatewayToLambdaSpecRestApiDeploymentStageprodB962CBBB"},"throttle":{}}]}}}}}}},"LambdaRestApiCloudWatchRole":{"id":"LambdaRestApiCloudWatchRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportLambdaRestApiCloudWatchRole":{"id":"ImportLambdaRestApiCloudWatchRole","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/ImportLambdaRestApiCloudWatchRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaRestApiCloudWatchRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"apigateway.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaRestApiCloudWatchRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:DescribeLogGroups","logs:DescribeLogStreams","logs:FilterLogEvents","logs:GetLogEvents","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaRestApiAccount":{"id":"LambdaRestApiAccount","path":"opilam-substringUriNames/OpenApiGatewayToLambda/LambdaRestApiAccount","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAccount","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Account","aws:cdk:cloudformation:props":{"cloudWatchRoleArn":{"Fn::GetAtt":["OpenApiGatewayToLambdaLambdaRestApiCloudWatchRoleBC7E6D95","Arn"]}}}}}},"Integ":{"id":"Integ","path":"opilam-substringUriNames/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"opilam-substringUriNames/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"opilam-substringUriNames/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"opilam-substringUriNames/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-substringUriNames/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-substringUriNames/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"opilam-substringUriNames/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"opilam-substringUriNames/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.adoc index 6902d44b5..2eee505b9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.adoc @@ -49,7 +49,7 @@ import { S3ToLambdaProps, S3ToLambda } from '@aws-solutions-constructs/aws-s3-la new S3ToLambda(this, 'test-s3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler' }, }); @@ -89,7 +89,7 @@ import software.amazon.awsconstructs.services.s3lambda.*; new S3ToLambda(this, "test-s3-lambda'", new S3ToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/manifest.json index 334d92980..ff8479150 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a326c64f4ccd9a7c7b5e3e78a3b3e300748027172eef23c97fcdf0d902905df9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0b434856523694b016724a67db8f4f8f6e5b8efa9435f03f9c233baf0de0c7cf.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -564,7 +564,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -903,6 +903,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/s3lam-existing-s3-bucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/s3lam-existing-s3-bucket.assets.json index ff8b12103..a4380e1f7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/s3lam-existing-s3-bucket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/s3lam-existing-s3-bucket.assets.json @@ -29,16 +29,16 @@ } } }, - "a326c64f4ccd9a7c7b5e3e78a3b3e300748027172eef23c97fcdf0d902905df9": { + "0b434856523694b016724a67db8f4f8f6e5b8efa9435f03f9c233baf0de0c7cf": { "displayName": "s3lam-existing-s3-bucket Template", "source": { "path": "s3lam-existing-s3-bucket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-282a2aca": { + "current_account-current_region-8a9d62bc": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a326c64f4ccd9a7c7b5e3e78a3b3e300748027172eef23c97fcdf0d902905df9.json", + "objectKey": "0b434856523694b016724a67db8f4f8f6e5b8efa9435f03f9c233baf0de0c7cf.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/s3lam-existing-s3-bucket.template.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/s3lam-existing-s3-bucket.template.json index 66a316f12..f9f7410eb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/s3lam-existing-s3-bucket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/s3lam-existing-s3-bucket.template.json @@ -527,7 +527,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/tree.json index 9050e7251..ea63ff5ef 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-existing-s3-bucket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.219.0"},"children":{"s3lam-existing-s3-bucket":{"id":"s3lam-existing-s3-bucket","path":"s3lam-existing-s3-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"s3lam-existing-s3-bucket/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3lam-existing-s3-bucket/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3lam-existing-s3-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.219.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3lam-existing-s3-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3lam-existing-s3-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.219.0"},"children":{"Staging":{"id":"Staging","path":"s3lam-existing-s3-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.219.0"}},"Role":{"id":"Role","path":"s3lam-existing-s3-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}},"Handler":{"id":"Handler","path":"s3lam-existing-s3-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"s3lam-existing-s3-bucket/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3lam-existing-s3-bucket/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3lam-existing-s3-bucket/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.219.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3lam-existing-s3-bucket/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"Notifications":{"id":"Notifications","path":"s3lam-existing-s3-bucket/scrapBucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"AllowBucketNotificationsTos3lamexistings3buckettests3lambdaLambdaFunctionCA1AFC4C":{"id":"AllowBucketNotificationsTos3lamexistings3buckettests3lambdaLambdaFunctionCA1AFC4C","path":"s3lam-existing-s3-bucket/scrapBucket/AllowBucketNotificationsTos3lamexistings3buckettests3lambdaLambdaFunctionCA1AFC4C","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["tests3lambdaLambdaFunctionB56B7023","Arn"]},"principal":"s3.amazonaws.com","sourceAccount":{"Ref":"AWS::AccountId"},"sourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}}}}}},"test-s3-lambda":{"id":"test-s3-lambda","path":"s3lam-existing-s3-bucket/test-s3-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-lambda.S3ToLambda","version":"2.93.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.219.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.219.0"},"children":{"Stage":{"id":"Stage","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.219.0"}},"AssetBucket":{"id":"AssetBucket","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.219.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["tests3lambdaLambdaFunctionServiceRoleA74F4427","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"tests3lambdaLambdaFunctioninlinePolicyAddedToExecutionRole0D4909C11","roles":[{"Ref":"tests3lambdaLambdaFunctionServiceRoleA74F4427"}]}}}}}}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"Integ":{"id":"Integ","path":"s3lam-existing-s3-bucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.219.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3lam-existing-s3-bucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.219.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3lam-existing-s3-bucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3lam-existing-s3-bucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3lam-existing-s3-bucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3lam-existing-s3-bucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3lam-existing-s3-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3lam-existing-s3-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"s3lam-existing-s3-bucket":{"id":"s3lam-existing-s3-bucket","path":"s3lam-existing-s3-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"s3lam-existing-s3-bucket/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3lam-existing-s3-bucket/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3lam-existing-s3-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3lam-existing-s3-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3lam-existing-s3-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"s3lam-existing-s3-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"s3lam-existing-s3-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"s3lam-existing-s3-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"s3lam-existing-s3-bucket/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3lam-existing-s3-bucket/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3lam-existing-s3-bucket/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3lam-existing-s3-bucket/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Notifications":{"id":"Notifications","path":"s3lam-existing-s3-bucket/scrapBucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/scrapBucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"AllowBucketNotificationsTos3lamexistings3buckettests3lambdaLambdaFunctionCA1AFC4C":{"id":"AllowBucketNotificationsTos3lamexistings3buckettests3lambdaLambdaFunctionCA1AFC4C","path":"s3lam-existing-s3-bucket/scrapBucket/AllowBucketNotificationsTos3lamexistings3buckettests3lambdaLambdaFunctionCA1AFC4C","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["tests3lambdaLambdaFunctionB56B7023","Arn"]},"principal":"s3.amazonaws.com","sourceAccount":{"Ref":"AWS::AccountId"},"sourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}}}}}},"test-s3-lambda":{"id":"test-s3-lambda","path":"s3lam-existing-s3-bucket/test-s3-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-lambda.S3ToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["tests3lambdaLambdaFunctionServiceRoleA74F4427","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/test-s3-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"tests3lambdaLambdaFunctioninlinePolicyAddedToExecutionRole0D4909C11","roles":[{"Ref":"tests3lambdaLambdaFunctionServiceRoleA74F4427"}]}}}}}}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3lam-existing-s3-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"s3lam-existing-s3-bucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3lam-existing-s3-bucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3lam-existing-s3-bucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3lam-existing-s3-bucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3lam-existing-s3-bucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3lam-existing-s3-bucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3lam-existing-s3-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3lam-existing-s3-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/manifest.json index b1be40bfe..0fc63f759 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/169f62579ef242da3c7c070617d826f9902a371052da508a5ae9046e6d8d1502.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/25e1d5c1ca23926857785aecc84d1963c500c8402fa9aeec12db44be04d51bb3.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -578,7 +578,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -917,6 +917,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/s3lam-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/s3lam-no-arguments.assets.json index c00d39f8b..6bdc3cd9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/s3lam-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/s3lam-no-arguments.assets.json @@ -29,16 +29,16 @@ } } }, - "169f62579ef242da3c7c070617d826f9902a371052da508a5ae9046e6d8d1502": { + "25e1d5c1ca23926857785aecc84d1963c500c8402fa9aeec12db44be04d51bb3": { "displayName": "s3lam-no-arguments Template", "source": { "path": "s3lam-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-2e20bc73": { + "current_account-current_region-65060eeb": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "169f62579ef242da3c7c070617d826f9902a371052da508a5ae9046e6d8d1502.json", + "objectKey": "25e1d5c1ca23926857785aecc84d1963c500c8402fa9aeec12db44be04d51bb3.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/s3lam-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/s3lam-no-arguments.template.json index ef4a2a4b4..993767a0e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/s3lam-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/s3lam-no-arguments.template.json @@ -83,7 +83,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/tree.json index 5245eda96..4949d547c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.s3lam-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.219.0"},"children":{"s3lam-no-arguments":{"id":"s3lam-no-arguments","path":"s3lam-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"test-s3-lambda":{"id":"test-s3-lambda","path":"s3lam-no-arguments/test-s3-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-lambda.S3ToLambda","version":"2.93.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.219.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.219.0"},"children":{"Stage":{"id":"Stage","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.219.0"}},"AssetBucket":{"id":"AssetBucket","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.219.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["tests3lambdaLambdaFunctionServiceRoleA74F4427","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"tests3lambdaLambdaFunctioninlinePolicyAddedToExecutionRole0D4909C11","roles":[{"Ref":"tests3lambdaLambdaFunctionServiceRoleA74F4427"}]}}}}}}},"S3LoggingBucket":{"id":"S3LoggingBucket","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3lambdaS3LoggingBucket0C3BBFDC"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.219.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"tests3lambdaS3LoggingBucket0C3BBFDC"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3lambdaS3BucketBE7C1B8E"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"Notifications":{"id":"Notifications","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"AllowBucketNotificationsTos3lamnoargumentstests3lambdaLambdaFunction7F4DB5A1":{"id":"AllowBucketNotificationsTos3lamnoargumentstests3lambdaLambdaFunction7F4DB5A1","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/AllowBucketNotificationsTos3lamnoargumentstests3lambdaLambdaFunction7F4DB5A1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["tests3lambdaLambdaFunctionB56B7023","Arn"]},"principal":"s3.amazonaws.com","sourceAccount":{"Ref":"AWS::AccountId"},"sourceArn":{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3lam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.219.0"},"children":{"Staging":{"id":"Staging","path":"s3lam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.219.0"}},"Role":{"id":"Role","path":"s3lam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}},"Handler":{"id":"Handler","path":"s3lam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"Integ":{"id":"Integ","path":"s3lam-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.219.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3lam-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.219.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3lam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3lam-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3lam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3lam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3lam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3lam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"s3lam-no-arguments":{"id":"s3lam-no-arguments","path":"s3lam-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-s3-lambda":{"id":"test-s3-lambda","path":"s3lam-no-arguments/test-s3-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-lambda.S3ToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","code":"*","runtime":"*","handler":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["tests3lambdaLambdaFunctionServiceRoleA74F4427","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"tests3lambdaLambdaFunctioninlinePolicyAddedToExecutionRole0D4909C11","roles":[{"Ref":"tests3lambdaLambdaFunctionServiceRoleA74F4427"}]}}}}}}},"S3LoggingBucket":{"id":"S3LoggingBucket","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3lambdaS3LoggingBucket0C3BBFDC"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["tests3lambdaS3LoggingBucket0C3BBFDC","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3lam-no-arguments/test-s3-lambda/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*"},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"tests3lambdaS3LoggingBucket0C3BBFDC"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3lambdaS3BucketBE7C1B8E"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"Notifications":{"id":"Notifications","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"AllowBucketNotificationsTos3lamnoargumentstests3lambdaLambdaFunction7F4DB5A1":{"id":"AllowBucketNotificationsTos3lamnoargumentstests3lambdaLambdaFunction7F4DB5A1","path":"s3lam-no-arguments/test-s3-lambda/S3Bucket/AllowBucketNotificationsTos3lamnoargumentstests3lambdaLambdaFunction7F4DB5A1","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["tests3lambdaLambdaFunctionB56B7023","Arn"]},"principal":"s3.amazonaws.com","sourceAccount":{"Ref":"AWS::AccountId"},"sourceArn":{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3lam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"s3lam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"s3lam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"s3lam-no-arguments/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["tests3lambdaS3BucketBE7C1B8E","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3lam-no-arguments/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"s3lam-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3lam-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3lam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3lam-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3lam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3lam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3lam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3lam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/manifest.json index ddabf6c2c..11b65cd91 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b7e8699308349d36d359792e539a9ed228c65f5e4f6dbb389e3f47c0f4714f74.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ab7385f990342ccdd2366e111937b4b91e1d3a86a8fb202a9b1e5fe8703b1c4e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -422,7 +422,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -442,7 +443,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -462,7 +464,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -873,7 +876,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1212,6 +1215,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/s3stp-customLoggingBucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/s3stp-customLoggingBucket.assets.json index 957de9ebb..0d1687261 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/s3stp-customLoggingBucket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/s3stp-customLoggingBucket.assets.json @@ -15,16 +15,16 @@ } } }, - "b7e8699308349d36d359792e539a9ed228c65f5e4f6dbb389e3f47c0f4714f74": { + "ab7385f990342ccdd2366e111937b4b91e1d3a86a8fb202a9b1e5fe8703b1c4e": { "displayName": "s3stp-customLoggingBucket Template", "source": { "path": "s3stp-customLoggingBucket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-e26f73bd": { + "current_account-current_region-159e7632": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7e8699308349d36d359792e539a9ed228c65f5e4f6dbb389e3f47c0f4714f74.json", + "objectKey": "ab7385f990342ccdd2366e111937b4b91e1d3a86a8fb202a9b1e5fe8703b1c4e.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/s3stp-customLoggingBucket.template.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/s3stp-customLoggingBucket.template.json index f56f96b3e..5d24a775a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/s3stp-customLoggingBucket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/s3stp-customLoggingBucket.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/tree.json index 05c5017ad..cfb48b8b8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-customLoggingBucket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.219.0"},"children":{"s3stp-customLoggingBucket":{"id":"s3stp-customLoggingBucket","path":"s3stp-customLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"s3stp-customLoggingBucket/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.219.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"s3stp-customLoggingBucket/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"s3stp-customLoggingBucket/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs20.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"s3stp-customLoggingBucket/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.219.0"}},"test-s3-stepfunctions":{"id":"test-s3-stepfunctions","path":"s3stp-customLoggingBucket/test-s3-stepfunctions","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-stepfunctions.S3ToStepfunctions","version":"2.93.0"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"lifecycleRules":[{"enabled":true,"transitions":"*"}]},{"addLifecycleRule":[{"enabled":true,"transitions":"*"},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"status":"Enabled","transitions":[{"storageClass":"GLACIER","transitionInDays":7}]}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3stepfunctionsS3LoggingBucketF7586A92"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.219.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true,"eventBridgeEnabled":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"tests3stepfunctionsS3LoggingBucketF7586A92"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3stepfunctionsS3Bucket2B08AD28"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.219.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"Notifications":{"id":"Notifications","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}}}},"test-s3-stepfunctions-event-rule-step-function-construct":{"id":"test-s3-stepfunctions-event-rule-step-function-construct","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.93.0"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.219.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/s3stp-customLoggingBuckettest-s3-stepfunctions-event-rule-step-function-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.219.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachineRoleDefaultPolicy2A86AA4F","roles":[{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachineRoleEAF485A9"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachineLogGroupB4555776","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachineRoleEAF485A9","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.219.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.219.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.219.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"}}],"Version":"2012-10-17"},"policyName":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructEventsRuleRoleDefaultPolicy0353F447","roles":[{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructEventsRuleRoleE7CAD359"}]}}}}}}},"EventsRule":{"id":"EventsRule","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.219.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*","detailType":"*","detail":"*"}},{"addEventPattern":[{"source":"*","detailType":"*","detail":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventPattern":{"source":["aws.s3"],"detail-type":["Object Created"],"detail":{"bucket":{"name":[{"Ref":"tests3stepfunctionsS3Bucket2B08AD28"}]}}},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructEventsRuleRoleE7CAD359","Arn"]}}]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3stp-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.219.0"},"children":{"Staging":{"id":"Staging","path":"s3stp-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.219.0"}},"Role":{"id":"Role","path":"s3stp-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}},"Handler":{"id":"Handler","path":"s3stp-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"Integ":{"id":"Integ","path":"s3stp-customLoggingBucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.219.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3stp-customLoggingBucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.219.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3stp-customLoggingBucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3stp-customLoggingBucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-customLoggingBucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-customLoggingBucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-customLoggingBucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-customLoggingBucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"s3stp-customLoggingBucket":{"id":"s3stp-customLoggingBucket","path":"s3stp-customLoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"s3stp-customLoggingBucket/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"s3stp-customLoggingBucket/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"s3stp-customLoggingBucket/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"s3stp-customLoggingBucket/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-s3-stepfunctions":{"id":"test-s3-stepfunctions","path":"s3stp-customLoggingBucket/test-s3-stepfunctions","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-stepfunctions.S3ToStepfunctions","version":"2.95.1"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true,"lifecycleRules":[{"enabled":true,"transitions":"*"}]},{"addLifecycleRule":[{"enabled":true,"transitions":"*"},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"status":"Enabled","transitions":[{"storageClass":"GLACIER","transitionInDays":7}]}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3stepfunctionsS3LoggingBucketF7586A92"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3LoggingBucketF7586A92","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true,"eventBridgeEnabled":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"tests3stepfunctionsS3LoggingBucketF7586A92"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3stepfunctionsS3Bucket2B08AD28"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Notifications":{"id":"Notifications","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/S3Bucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"test-s3-stepfunctions-event-rule-step-function-construct":{"id":"test-s3-stepfunctions-event-rule-step-function-construct","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/s3stp-customLoggingBuckettest-s3-stepfunctions-event-rule-step-function-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachineRoleDefaultPolicy2A86AA4F","roles":[{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachineRoleEAF485A9"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachineLogGroupB4555776","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachineRoleEAF485A9","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"}}],"Version":"2012-10-17"},"policyName":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructEventsRuleRoleDefaultPolicy0353F447","roles":[{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructEventsRuleRoleE7CAD359"}]}}}}}}},"EventsRule":{"id":"EventsRule","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*","detailType":"*","detail":"*"}},{"addEventPattern":[{"source":"*","detailType":"*","detail":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/test-s3-stepfunctions/test-s3-stepfunctions-event-rule-step-function-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventPattern":{"source":["aws.s3"],"detail-type":["Object Created"],"detail":{"bucket":{"name":[{"Ref":"tests3stepfunctionsS3Bucket2B08AD28"}]}}},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructStateMachine67197269"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionstests3stepfunctionseventrulestepfunctionconstructEventsRuleRoleE7CAD359","Arn"]}}]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3stp-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"s3stp-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"s3stp-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"s3stp-customLoggingBucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["tests3stepfunctionsS3Bucket2B08AD28","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-customLoggingBucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"s3stp-customLoggingBucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3stp-customLoggingBucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3stp-customLoggingBucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3stp-customLoggingBucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-customLoggingBucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-customLoggingBucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-customLoggingBucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-customLoggingBucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/manifest.json index e781023e1..7dda6d9ea 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ec7b390f5302afe461cb92adc60b5e2bbdfdb10054578cbcf224bbfe66d52419.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/1d45d0ed00390c5a97c98797564665c90985395ad7cc323645687db468519283.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -493,7 +493,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -513,7 +514,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -533,7 +535,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -827,7 +830,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1166,6 +1169,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/s3stp-pre-existing-bucket.assets.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/s3stp-pre-existing-bucket.assets.json index 24169bc61..e37ae17da 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/s3stp-pre-existing-bucket.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/s3stp-pre-existing-bucket.assets.json @@ -15,16 +15,16 @@ } } }, - "ec7b390f5302afe461cb92adc60b5e2bbdfdb10054578cbcf224bbfe66d52419": { + "1d45d0ed00390c5a97c98797564665c90985395ad7cc323645687db468519283": { "displayName": "s3stp-pre-existing-bucket Template", "source": { "path": "s3stp-pre-existing-bucket.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-e2616f5a": { + "current_account-current_region-b9cc7eb9": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ec7b390f5302afe461cb92adc60b5e2bbdfdb10054578cbcf224bbfe66d52419.json", + "objectKey": "1d45d0ed00390c5a97c98797564665c90985395ad7cc323645687db468519283.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/s3stp-pre-existing-bucket.template.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/s3stp-pre-existing-bucket.template.json index d3f333a0e..c32a50273 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/s3stp-pre-existing-bucket.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/s3stp-pre-existing-bucket.template.json @@ -584,7 +584,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/tree.json index 0fcb625d9..b9e1e753b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-pre-existing-bucket.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.219.0"},"children":{"s3stp-pre-existing-bucket":{"id":"s3stp-pre-existing-bucket","path":"s3stp-pre-existing-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"s3stp-pre-existing-bucket/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-pre-existing-bucket/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-pre-existing-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.219.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-pre-existing-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3stp-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.219.0"},"children":{"Staging":{"id":"Staging","path":"s3stp-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.219.0"}},"Role":{"id":"Role","path":"s3stp-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}},"Handler":{"id":"Handler","path":"s3stp-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"s3stp-pre-existing-bucket/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"eventBridgeEnabled":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-pre-existing-bucket/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-pre-existing-bucket/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.219.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-pre-existing-bucket/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"Notifications":{"id":"Notifications","path":"s3stp-pre-existing-bucket/scrapBucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"lambdas3stp-test":{"id":"lambdas3stp-test","path":"s3stp-pre-existing-bucket/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.219.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"s3stp-pre-existing-bucket/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"s3stp-pre-existing-bucket/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs20.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"s3stp-pre-existing-bucket/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.219.0"}},"test-s3-stepfunctions-pre-existing-bucket-construct":{"id":"test-s3-stepfunctions-pre-existing-bucket-construct","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-stepfunctions.S3ToStepfunctions","version":"2.93.0"},"children":{"test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct":{"id":"test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.93.0"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.219.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/s3stp-pre-existing-buckettest-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.219.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"gbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachineRoleDefaultPolicyC654D95B","roles":[{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachineRoleE56A7030"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachineLogGroup9D5E3E4D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachineRoleE56A7030","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.219.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.219.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.219.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"}}],"Version":"2012-10-17"},"policyName":"ingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructEventsRuleRoleDefaultPolicyBF1D043B","roles":[{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructEventsRuleRole3CF23446"}]}}}}}}},"EventsRule":{"id":"EventsRule","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.219.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*","detailType":"*","detail":"*"}},{"addEventPattern":[{"source":"*","detailType":"*","detail":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventPattern":{"source":["aws.s3"],"detail-type":["Object Created"],"detail":{"bucket":{"name":[{"Ref":"scrapBucketB11863B7"}]}}},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructEventsRuleRole3CF23446","Arn"]}}]}}}}}}}}},"Integ":{"id":"Integ","path":"s3stp-pre-existing-bucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.219.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3stp-pre-existing-bucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.219.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3stp-pre-existing-bucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3stp-pre-existing-bucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-pre-existing-bucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-pre-existing-bucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-pre-existing-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-pre-existing-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"s3stp-pre-existing-bucket":{"id":"s3stp-pre-existing-bucket","path":"s3stp-pre-existing-bucket","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"scrapBucketLog":{"id":"scrapBucketLog","path":"s3stp-pre-existing-bucket/scrapBucketLog","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucketLog/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-pre-existing-bucket/scrapBucketLog/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucketLog/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketLog7B53B25C"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketLog7B53B25C","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-pre-existing-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-pre-existing-bucket/scrapBucketLog/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3stp-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"s3stp-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"s3stp-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"s3stp-pre-existing-bucket/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"scrapBucket":{"id":"scrapBucket","path":"s3stp-pre-existing-bucket/scrapBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"versioned":true,"removalPolicy":"destroy","autoDeleteObjects":true,"encryption":"S3_MANAGED","enforceSSL":true,"eventBridgeEnabled":true,"serverAccessLogsBucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"scrapBucketLog7B53B25C"}},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-pre-existing-bucket/scrapBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"scrapBucketB11863B7"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-pre-existing-bucket/scrapBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-pre-existing-bucket/scrapBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Notifications":{"id":"Notifications","path":"s3stp-pre-existing-bucket/scrapBucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/scrapBucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["scrapBucketB11863B7","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"lambdas3stp-test":{"id":"lambdas3stp-test","path":"s3stp-pre-existing-bucket/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"s3stp-pre-existing-bucket/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"s3stp-pre-existing-bucket/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"s3stp-pre-existing-bucket/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-s3-stepfunctions-pre-existing-bucket-construct":{"id":"test-s3-stepfunctions-pre-existing-bucket-construct","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-stepfunctions.S3ToStepfunctions","version":"2.95.1"},"children":{"test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct":{"id":"test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/s3stp-pre-existing-buckettest-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"gbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachineRoleDefaultPolicyC654D95B","roles":[{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachineRoleE56A7030"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachineLogGroup9D5E3E4D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachineRoleE56A7030","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"}}],"Version":"2012-10-17"},"policyName":"ingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructEventsRuleRoleDefaultPolicyBF1D043B","roles":[{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructEventsRuleRole3CF23446"}]}}}}}}},"EventsRule":{"id":"EventsRule","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*","detailType":"*","detail":"*"}},{"addEventPattern":[{"source":"*","detailType":"*","detail":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-pre-existing-bucket/test-s3-stepfunctions-pre-existing-bucket-construct/test-s3-stepfunctions-pre-existing-bucket-construct-event-rule-step-function-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventPattern":{"source":["aws.s3"],"detail-type":["Object Created"],"detail":{"bucket":{"name":[{"Ref":"scrapBucketB11863B7"}]}}},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructStateMachine326BB1C1"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionspreexistingbucketconstructtests3stepfunctionspreexistingbucketconstructeventrulestepfunctionconstructEventsRuleRole3CF23446","Arn"]}}]}}}}}}}}},"Integ":{"id":"Integ","path":"s3stp-pre-existing-bucket/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3stp-pre-existing-bucket/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3stp-pre-existing-bucket/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3stp-pre-existing-bucket/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-pre-existing-bucket/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-pre-existing-bucket/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-pre-existing-bucket/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-pre-existing-bucket/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/manifest.json index f2be822d5..50e3d8b42 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ca61b87a5a728d13df8c3e64e5db78baa10ae3b99ebff1974bd2fc0a84bee29c.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f9609142cc0069cceb9b37fda764fb652e75504dbae5efdb9fee2f068dab82c8.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -403,7 +403,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -423,7 +424,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -443,7 +445,8 @@ "type": "aws:cdk:analytics:construct", "data": { "metric": { - "warnings": "*" + "warnings": "*", + "warningsV2": "*" }, "threshold": "*", "evaluationPeriods": "*", @@ -854,7 +857,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1193,6 +1196,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/s3stp-s3-stepfunctions-no-argument.assets.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/s3stp-s3-stepfunctions-no-argument.assets.json index 045004a21..dcaeea7b6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/s3stp-s3-stepfunctions-no-argument.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/s3stp-s3-stepfunctions-no-argument.assets.json @@ -15,16 +15,16 @@ } } }, - "ca61b87a5a728d13df8c3e64e5db78baa10ae3b99ebff1974bd2fc0a84bee29c": { + "f9609142cc0069cceb9b37fda764fb652e75504dbae5efdb9fee2f068dab82c8": { "displayName": "s3stp-s3-stepfunctions-no-argument Template", "source": { "path": "s3stp-s3-stepfunctions-no-argument.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-55a98f2a": { + "current_account-current_region-2d597d68": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ca61b87a5a728d13df8c3e64e5db78baa10ae3b99ebff1974bd2fc0a84bee29c.json", + "objectKey": "f9609142cc0069cceb9b37fda764fb652e75504dbae5efdb9fee2f068dab82c8.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/s3stp-s3-stepfunctions-no-argument.template.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/s3stp-s3-stepfunctions-no-argument.template.json index 3c5d77e1c..26eeabe1c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/s3stp-s3-stepfunctions-no-argument.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/s3stp-s3-stepfunctions-no-argument.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/tree.json index 767573648..958153385 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3stp-s3-stepfunctions-no-argument.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.219.0"},"children":{"s3stp-s3-stepfunctions-no-argument":{"id":"s3stp-s3-stepfunctions-no-argument","path":"s3stp-s3-stepfunctions-no-argument","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.219.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs20.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"s3stp-s3-stepfunctions-no-argument/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.219.0"}},"test-s3-stepfunctions-construct":{"id":"test-s3-stepfunctions-construct","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-stepfunctions.S3ToStepfunctions","version":"2.93.0"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3stepfunctionsconstructS3LoggingBucket706AEC25"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.219.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.219.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true,"eventBridgeEnabled":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"tests3stepfunctionsconstructS3LoggingBucket706AEC25"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.219.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3stepfunctionsconstructS3Bucket78CA0724"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.219.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"Notifications":{"id":"Notifications","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}}}},"test-s3-stepfunctions-construct-event-rule-step-function-construct":{"id":"test-s3-stepfunctions-construct-event-rule-step-function-construct","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.93.0"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.219.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/s3stp-s3-stepfunctions-no-argumenttest-s3-stepfunctions-construct-event-rule-step-function-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.219.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineRoleDefaultPolicy0E2A1A34","roles":[{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineRole29FAFE92"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineLogGroupE86C2CF5","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineRole29FAFE92","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.219.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.219.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.219.0","metadata":[{"metric":{"warnings":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"}}],"Version":"2012-10-17"},"policyName":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructEventsRuleRoleDefaultPolicyDD60D2A3","roles":[{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructEventsRuleRoleF724FFA6"}]}}}}}}},"EventsRule":{"id":"EventsRule","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.219.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*","detailType":"*","detail":"*"}},{"addEventPattern":[{"source":"*","detailType":"*","detail":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventPattern":{"source":["aws.s3"],"detail-type":["Object Created"],"detail":{"bucket":{"name":[{"Ref":"tests3stepfunctionsconstructS3Bucket78CA0724"}]}}},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructEventsRuleRoleF724FFA6","Arn"]}}]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3stp-s3-stepfunctions-no-argument/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.219.0"},"children":{"Staging":{"id":"Staging","path":"s3stp-s3-stepfunctions-no-argument/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.219.0"}},"Role":{"id":"Role","path":"s3stp-s3-stepfunctions-no-argument/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}},"Handler":{"id":"Handler","path":"s3stp-s3-stepfunctions-no-argument/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.219.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.219.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.219.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.219.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.219.0"}}}},"Integ":{"id":"Integ","path":"s3stp-s3-stepfunctions-no-argument/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.219.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.219.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.219.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-s3-stepfunctions-no-argument/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.219.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-s3-stepfunctions-no-argument/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.219.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"s3stp-s3-stepfunctions-no-argument":{"id":"s3stp-s3-stepfunctions-no-argument","path":"s3stp-s3-stepfunctions-no-argument","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"s3stp-s3-stepfunctions-no-argument/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-s3-stepfunctions-construct":{"id":"test-s3-stepfunctions-construct","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-s3-stepfunctions.S3ToStepfunctions","version":"2.95.1"},"children":{"S3LoggingBucket":{"id":"S3LoggingBucket","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"autoDeleteObjects":true}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3stepfunctionsconstructS3LoggingBucket706AEC25"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},"/*"]]}]},{"Action":"s3:PutObject","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"logging.s3.amazonaws.com"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3LoggingBucket706AEC25","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"S3Bucket":{"id":"S3Bucket","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"encryption":"S3_MANAGED","versioned":true,"blockPublicAccess":"*","removalPolicy":"destroy","enforceSSL":true,"lifecycleRules":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]}],"serverAccessLogsBucket":"*","autoDeleteObjects":true,"eventBridgeEnabled":true},{"addLifecycleRule":[{"noncurrentVersionTransitions":[{"storageClass":"*"}]},"*","*"]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]},"lifecycleConfiguration":{"rules":[{"noncurrentVersionTransitions":[{"storageClass":"GLACIER","transitionInDays":90}],"status":"Enabled"}]},"loggingConfiguration":{"destinationBucketName":{"Ref":"tests3stepfunctionsconstructS3LoggingBucket706AEC25"}},"publicAccessBlockConfiguration":{"blockPublicAcls":true,"blockPublicPolicy":true,"ignorePublicAcls":true,"restrictPublicBuckets":true},"tags":[{"key":"aws-cdk:auto-delete-objects","value":"true"}],"versioningConfiguration":{"status":"Enabled"}}}},"Policy":{"id":"Policy","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"tests3stepfunctionsconstructS3Bucket78CA0724"},"policyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]},"/*"]]}]},{"Action":["s3:DeleteObject*","s3:GetBucket*","s3:List*","s3:PutBucketPolicy"],"Effect":"Allow","Principal":{"AWS":{"Fn::GetAtt":["CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092","Arn"]}},"Resource":[{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}}}}},"AutoDeleteObjectsCustomResource":{"id":"AutoDeleteObjectsCustomResource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/AutoDeleteObjectsCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/AutoDeleteObjectsCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Notifications":{"id":"Notifications","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Notifications","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/S3Bucket/Notifications/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}}}},"test-s3-stepfunctions-construct-event-rule-step-function-construct":{"id":"test-s3-stepfunctions-construct-event-rule-step-function-construct","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-eventbridge-stepfunctions.EventbridgeToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"removalPolicy":"destroy","logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/s3stp-s3-stepfunctions-no-argumenttest-s3-stepfunctions-construct-event-rule-step-function-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineRoleDefaultPolicy0E2A1A34","roles":[{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineRole29FAFE92"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineLogGroupE86C2CF5","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineRole29FAFE92","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"EventsRuleRole":{"id":"EventsRuleRole","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportEventsRuleRole":{"id":"ImportEventsRuleRole","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole/ImportEventsRuleRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRuleRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"}}],"Version":"2012-10-17"},"policyName":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructEventsRuleRoleDefaultPolicyDD60D2A3","roles":[{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructEventsRuleRoleF724FFA6"}]}}}}}}},"EventsRule":{"id":"EventsRule","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRule","constructInfo":{"fqn":"aws-cdk-lib.aws_events.Rule","version":"2.223.0","metadata":[{"targets":"*","eventBus":"*","eventPattern":{"source":"*","detailType":"*","detail":"*"}},{"addEventPattern":[{"source":"*","detailType":"*","detail":"*"}]},{"addTarget":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/test-s3-stepfunctions-construct/test-s3-stepfunctions-construct-event-rule-step-function-construct/EventsRule/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_events.CfnRule","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Events::Rule","aws:cdk:cloudformation:props":{"eventPattern":{"source":["aws.s3"],"detail-type":["Object Created"],"detail":{"bucket":{"name":[{"Ref":"tests3stepfunctionsconstructS3Bucket78CA0724"}]}}},"state":"ENABLED","targets":[{"id":"Target0","arn":{"Ref":"tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructStateMachineCC5D0DD7"},"roleArn":{"Fn::GetAtt":["tests3stepfunctionsconstructtests3stepfunctionsconstructeventrulestepfunctionconstructEventsRuleRoleF724FFA6","Arn"]}}]}}}}}}}}},"Custom::S3AutoDeleteObjectsCustomResourceProvider":{"id":"Custom::S3AutoDeleteObjectsCustomResourceProvider","path":"s3stp-s3-stepfunctions-no-argument/Custom::S3AutoDeleteObjectsCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"s3stp-s3-stepfunctions-no-argument/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"s3stp-s3-stepfunctions-no-argument/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"s3stp-s3-stepfunctions-no-argument/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834":{"id":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Role":{"id":"Role","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["tests3stepfunctionsconstructS3Bucket78CA0724","Arn"]}}],"Version":"2012-10-17"},"policyName":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36","roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]}}}}}}},"Resource":{"id":"Resource","path":"s3stp-s3-stepfunctions-no-argument/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"s3stp-s3-stepfunctions-no-argument/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-s3-stepfunctions-no-argument/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"s3stp-s3-stepfunctions-no-argument/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"s3stp-s3-stepfunctions-no-argument/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.adoc index 89268f643..69447def8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new SnsToLambda(this, 'test-sns-lambda', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -89,7 +89,7 @@ import software.amazon.awsconstructs.services.snslambda.*; new SnsToLambda(this, "test-lambda-sqs-stack", new SnsToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js new file mode 100644 index 000000000..44a0a9467 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async function(event) { + console.log('request:', JSON.stringify(event, undefined, 2)); + return { + statusCode: 200, + headers: { 'Content-Type': 'text/plain' }, + body: `Hello, CDK! You've hit ${event.path}\n` + }; + }; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/integ.json index a12c393b2..078ce1381 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "snslam-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "snslam-no-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "snslamnoargumentsIntegDefaultTestDeployAssertB9F7D66E" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/manifest.json index 0cc6bc3da..27550daea 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "snslamnoargumentsIntegDefaultTestDeployAssertB9F7D66E.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d1492876ede387ab647beac77de9db9f2592919ff974aa9a90a0cac894187ebd.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c8129fc624ade3db9a0d3f45ca77a9b82c7aa0cc09e80f47f5bc9652768c255b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -257,15 +257,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "testsnslambdaLambdaFunctionServiceRoleDefaultPolicy3E6745ED": [ - { - "type": "aws:cdk:logicalId", - "data": "testsnslambdaLambdaFunctionServiceRoleDefaultPolicy3E6745ED", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "snslam-no-arguments" @@ -275,7 +266,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslam-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslam-no-arguments.assets.json index 8d9c1a8b5..c5ab585a3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslam-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslam-no-arguments.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c": { + "displayName": "test-sns-lambda/LambdaFunction/Code", "source": { "path": "asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d11fcfce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "d1492876ede387ab647beac77de9db9f2592919ff974aa9a90a0cac894187ebd": { + "c8129fc624ade3db9a0d3f45ca77a9b82c7aa0cc09e80f47f5bc9652768c255b": { + "displayName": "snslam-no-arguments Template", "source": { "path": "snslam-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-543cb853": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "d1492876ede387ab647beac77de9db9f2592919ff974aa9a90a0cac894187ebd.json", + "objectKey": "c8129fc624ade3db9a0d3f45ca77a9b82c7aa0cc09e80f47f5bc9652768c255b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslam-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslam-no-arguments.template.json index 10407236e..b7b2a1939 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslam-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslam-no-arguments.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslamnoargumentsIntegDefaultTestDeployAssertB9F7D66E.assets.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslamnoargumentsIntegDefaultTestDeployAssertB9F7D66E.assets.json index f4d1b2105..d672a0a08 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslamnoargumentsIntegDefaultTestDeployAssertB9F7D66E.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/snslamnoargumentsIntegDefaultTestDeployAssertB9F7D66E.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "snslamnoargumentsIntegDefaultTestDeployAssertB9F7D66E Template", "source": { "path": "snslamnoargumentsIntegDefaultTestDeployAssertB9F7D66E.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/tree.json index 839e3d09c..fcd0c1f09 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.snslam-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"snslam-no-arguments":{"id":"snslam-no-arguments","path":"snslam-no-arguments","children":{"test-sns-lambda":{"id":"test-sns-lambda","path":"snslam-no-arguments/test-sns-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"snslam-no-arguments/test-sns-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"snslam-no-arguments/test-sns-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testsnslambdaLambdaFunctionServiceRole23794781","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsnslambdaLambdaFunctioninlinePolicyAddedToExecutionRole015A6D296","roles":[{"Ref":"testsnslambdaLambdaFunctionServiceRole23794781"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"AllowInvoke:snslamnoargumentstestsnslambdaSnsTopicC2A35224":{"id":"AllowInvoke:snslamnoargumentstestsnslambdaSnsTopicC2A35224","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/AllowInvoke:snslamnoargumentstestsnslambdaSnsTopicC2A35224","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testsnslambdaLambdaFunctionEE9A249B","Arn"]},"principal":"sns.amazonaws.com","sourceArn":{"Ref":"testsnslambdaSnsTopic52CA159E"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.186.0"}},"SnsTopic":{"id":"SnsTopic","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/SnsTopic","children":{"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/SnsTopic/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Subscription","aws:cdk:cloudformation:props":{"endpoint":{"Fn::GetAtt":["testsnslambdaLambdaFunctionEE9A249B","Arn"]},"protocol":"lambda","topicArn":{"Ref":"testsnslambdaSnsTopic52CA159E"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnSubscription","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Subscription","version":"2.186.0","metadata":[{"topic":"*","endpoint":"*","protocol":"lambda","filterPolicy":"*","filterPolicyWithMessageBody":"*","region":"*","deadLetterQueue":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"aws-managed-key":{"id":"aws-managed-key","path":"snslam-no-arguments/test-sns-lambda/aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":[]}},"SnsTopic":{"id":"SnsTopic","path":"snslam-no-arguments/test-sns-lambda/SnsTopic","children":{"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/SnsTopic/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Topic","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/sns"]]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopic","version":"2.186.0"}},"Policy":{"id":"Policy","path":"snslam-no-arguments/test-sns-lambda/SnsTopic/Policy","children":{"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/SnsTopic/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::TopicPolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"StringEquals":{"AWS:SourceOwner":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Ref":"testsnslambdaSnsTopic52CA159E"},"Sid":"TopicOwnerOnlyAccess"},{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Ref":"testsnslambdaSnsTopic52CA159E"},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"topics":[{"Ref":"testsnslambdaSnsTopic52CA159E"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopicPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sns.TopicPolicy","version":"2.186.0","metadata":[{"topics":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Topic","version":"2.186.0","metadata":[{"masterKey":"*"}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-sns-lambda.SnsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"snslam-no-arguments/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"snslam-no-arguments/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"snslam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"snslam-no-arguments/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"snslam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"snslam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"snslam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"snslam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"snslam-no-arguments":{"id":"snslam-no-arguments","path":"snslam-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-sns-lambda":{"id":"test-sns-lambda","path":"snslam-no-arguments/test-sns-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sns-lambda.SnsToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"snslam-no-arguments/test-sns-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"snslam-no-arguments/test-sns-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testsnslambdaLambdaFunctionServiceRole23794781","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsnslambdaLambdaFunctioninlinePolicyAddedToExecutionRole015A6D296","roles":[{"Ref":"testsnslambdaLambdaFunctionServiceRole23794781"}]}}}}},"AllowInvoke:snslamnoargumentstestsnslambdaSnsTopicC2A35224":{"id":"AllowInvoke:snslamnoargumentstestsnslambdaSnsTopicC2A35224","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/AllowInvoke:snslamnoargumentstestsnslambdaSnsTopicC2A35224","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testsnslambdaLambdaFunctionEE9A249B","Arn"]},"principal":"sns.amazonaws.com","sourceArn":{"Ref":"testsnslambdaSnsTopic52CA159E"}}}},"SnsTopic":{"id":"SnsTopic","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/SnsTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Subscription","version":"2.223.0","metadata":[{"topic":"*","endpoint":"*","protocol":"lambda","filterPolicy":"*","filterPolicyWithMessageBody":"*","region":"*","deadLetterQueue":"*"}]},"children":{"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/LambdaFunction/SnsTopic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnSubscription","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Subscription","aws:cdk:cloudformation:props":{"endpoint":{"Fn::GetAtt":["testsnslambdaLambdaFunctionEE9A249B","Arn"]},"protocol":"lambda","topicArn":{"Ref":"testsnslambdaSnsTopic52CA159E"}}}}}}}},"aws-managed-key":{"id":"aws-managed-key","path":"snslam-no-arguments/test-sns-lambda/aws-managed-key","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"SnsTopic":{"id":"SnsTopic","path":"snslam-no-arguments/test-sns-lambda/SnsTopic","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.Topic","version":"2.223.0","metadata":[{"masterKey":"*"}]},"children":{"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/SnsTopic/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopic","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::Topic","aws:cdk:cloudformation:props":{"kmsMasterKeyId":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/aws/sns"]]}}}},"Policy":{"id":"Policy","path":"snslam-no-arguments/test-sns-lambda/SnsTopic/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.TopicPolicy","version":"2.223.0","metadata":[{"topics":["*"]}]},"children":{"Resource":{"id":"Resource","path":"snslam-no-arguments/test-sns-lambda/SnsTopic/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sns.CfnTopicPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SNS::TopicPolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"StringEquals":{"AWS:SourceOwner":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Ref":"testsnslambdaSnsTopic52CA159E"},"Sid":"TopicOwnerOnlyAccess"},{"Action":["SNS:AddPermission","SNS:DeleteTopic","SNS:GetTopicAttributes","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive","SNS:RemovePermission","SNS:SetTopicAttributes","SNS:Subscribe"],"Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Ref":"testsnslambdaSnsTopic52CA159E"},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"topics":[{"Ref":"testsnslambdaSnsTopic52CA159E"}]}}}}}}}}},"Integ":{"id":"Integ","path":"snslam-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"snslam-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"snslam-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"snslam-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"snslam-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"snslam-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"snslam-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"snslam-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.adoc b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.adoc index 84fed4a1a..75dc38ab6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.adoc @@ -48,7 +48,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new SqsToLambda(this, 'SqsToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -90,7 +90,7 @@ import software.amazon.awsconstructs.services.sqslambda.*; new SqsToLambda(this, "SnsToSqsPattern", new SqsToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/integ.json index 4d3d3d0f7..0bd235980 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "sqslam-deployFifoQueue/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqslam-deployFifoQueue/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqslamdeployFifoQueueIntegDefaultTestDeployAssert77FD67F7" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/manifest.json index dc388aecc..0da7c774b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "sqslamdeployFifoQueueIntegDefaultTestDeployAssert77FD67F7.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e483dd752ec5563288937f40e9e669e17e63820d9fb43c3ed717487f67155e4c.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4b66dd49211c32b1f6565a8e005c89ab0514d43bf6bb8691dc5668f76f75d677.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -361,7 +361,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslam-deployFifoQueue.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslam-deployFifoQueue.assets.json index 6978556bb..9d87808b1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslam-deployFifoQueue.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslam-deployFifoQueue.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { + "displayName": "test-sqs-lambda-fifo/LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "e483dd752ec5563288937f40e9e669e17e63820d9fb43c3ed717487f67155e4c": { + "4b66dd49211c32b1f6565a8e005c89ab0514d43bf6bb8691dc5668f76f75d677": { + "displayName": "sqslam-deployFifoQueue Template", "source": { "path": "sqslam-deployFifoQueue.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-63acbe43": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "e483dd752ec5563288937f40e9e669e17e63820d9fb43c3ed717487f67155e4c.json", + "objectKey": "4b66dd49211c32b1f6565a8e005c89ab0514d43bf6bb8691dc5668f76f75d677.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslam-deployFifoQueue.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslam-deployFifoQueue.template.json index 8a04a6e1f..a8399d507 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslam-deployFifoQueue.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslam-deployFifoQueue.template.json @@ -102,7 +102,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -116,7 +116,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslamdeployFifoQueueIntegDefaultTestDeployAssert77FD67F7.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslamdeployFifoQueueIntegDefaultTestDeployAssert77FD67F7.assets.json index d4212b86c..bfbc989a8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslamdeployFifoQueueIntegDefaultTestDeployAssert77FD67F7.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/sqslamdeployFifoQueueIntegDefaultTestDeployAssert77FD67F7.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqslamdeployFifoQueueIntegDefaultTestDeployAssert77FD67F7 Template", "source": { "path": "sqslamdeployFifoQueueIntegDefaultTestDeployAssert77FD67F7.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/tree.json index e08ac4417..77e24fd4c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFifoQueue.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"sqslam-deployFifoQueue":{"id":"sqslam-deployFifoQueue","path":"sqslam-deployFifoQueue","children":{"test-sqs-lambda-fifo":{"id":"test-sqs-lambda-fifo","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqslambdafifoqueue45DD24D7","Arn"]}}],"Version":"2012-10-17"},"policyName":"testsqslambdafifoLambdaFunctionServiceRoleDefaultPolicy016B538E","roles":[{"Ref":"testsqslambdafifoLambdaFunctionServiceRole74463822"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction","children":{"Code":{"id":"Code","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testsqslambdafifoLambdaFunctionServiceRole74463822","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqslambdafifoLambdaFunctioninlinePolicyAddedToExecutionRole0DAD3262B","roles":[{"Ref":"testsqslambdafifoLambdaFunctionServiceRole74463822"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"SqsEventSource:sqslamdeployFifoQueuetestsqslambdafifoqueue471FB916":{"id":"SqsEventSource:sqslamdeployFifoQueuetestsqslambdafifoqueue471FB916","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/SqsEventSource:sqslamdeployFifoQueuetestsqslambdafifoqueue471FB916","children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/SqsEventSource:sqslamdeployFifoQueuetestsqslambdafifoqueue471FB916/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testsqslambdafifoqueue45DD24D7","Arn"]},"functionName":{"Ref":"testsqslambdafifoLambdaFunction0F3AE705"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"queue-dlq":{"id":"queue-dlq","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue-dlq","children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"fifoQueue":true,"kmsMasterKeyId":"alias/aws/sqs","queueName":"myDLQueue.fifo"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdafifoqueuedlq8882EE1A","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdafifoqueuedlq8882EE1A","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdafifoqueuedlq8882EE1A"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","queueName":"*","fifo":true}]}},"queue":{"id":"queue","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue","children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"fifoQueue":true,"kmsMasterKeyId":"alias/aws/sqs","queueName":"myQueue.fifo","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqslambdafifoqueuedlq8882EE1A","Arn"]},"maxReceiveCount":15}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue/Policy","children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdafifoqueue45DD24D7","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdafifoqueue45DD24D7","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdafifoqueue45DD24D7"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","queueName":"*","fifo":true,"deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"sqslam-deployFifoQueue/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"sqslam-deployFifoQueue/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"sqslam-deployFifoQueue/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqslam-deployFifoQueue/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-deployFifoQueue/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-deployFifoQueue/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-deployFifoQueue/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-deployFifoQueue/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqslam-deployFifoQueue":{"id":"sqslam-deployFifoQueue","path":"sqslam-deployFifoQueue","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-sqs-lambda-fifo":{"id":"test-sqs-lambda-fifo","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqslambdafifoqueue45DD24D7","Arn"]}}],"Version":"2012-10-17"},"policyName":"testsqslambdafifoLambdaFunctionServiceRoleDefaultPolicy016B538E","roles":[{"Ref":"testsqslambdafifoLambdaFunctionServiceRole74463822"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testsqslambdafifoLambdaFunctionServiceRole74463822","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqslambdafifoLambdaFunctioninlinePolicyAddedToExecutionRole0DAD3262B","roles":[{"Ref":"testsqslambdafifoLambdaFunctionServiceRole74463822"}]}}}}},"SqsEventSource:sqslamdeployFifoQueuetestsqslambdafifoqueue471FB916":{"id":"SqsEventSource:sqslamdeployFifoQueuetestsqslambdafifoqueue471FB916","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/SqsEventSource:sqslamdeployFifoQueuetestsqslambdafifoqueue471FB916","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/LambdaFunction/SqsEventSource:sqslamdeployFifoQueuetestsqslambdafifoqueue471FB916/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testsqslambdafifoqueue45DD24D7","Arn"]},"functionName":{"Ref":"testsqslambdafifoLambdaFunction0F3AE705"}}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","queueName":"*","fifo":true}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"fifoQueue":true,"kmsMasterKeyId":"alias/aws/sqs","queueName":"myDLQueue.fifo"}}},"Policy":{"id":"Policy","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdafifoqueuedlq8882EE1A","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdafifoqueuedlq8882EE1A","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdafifoqueuedlq8882EE1A"}]}}}}}}},"queue":{"id":"queue","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","queueName":"*","fifo":true,"deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"fifoQueue":true,"kmsMasterKeyId":"alias/aws/sqs","queueName":"myQueue.fifo","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqslambdafifoqueuedlq8882EE1A","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFifoQueue/test-sqs-lambda-fifo/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdafifoqueue45DD24D7","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdafifoqueue45DD24D7","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdafifoqueue45DD24D7"}]}}}}}}}}},"Integ":{"id":"Integ","path":"sqslam-deployFifoQueue/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqslam-deployFifoQueue/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqslam-deployFifoQueue/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqslam-deployFifoQueue/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-deployFifoQueue/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-deployFifoQueue/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-deployFifoQueue/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-deployFifoQueue/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/integ.json index 67b473eb2..b502089bc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "sqslam-deployFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqslam-deployFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqslamdeployFunctionIntegDefaultTestDeployAssert1ACA7AF2" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/manifest.json index 8d7fa4810..d4f1e1a6c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "sqslamdeployFunctionIntegDefaultTestDeployAssert1ACA7AF2.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a0daf42aca301ec0c3183de23ae9ec1d2e85ae5c3458322b2ae3d1b8d0d571a4.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/158b21e6b571c8f58f547f809888dde348f3ec507ffe033e97bb90e43c6359e1.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -359,7 +359,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslam-deployFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslam-deployFunction.assets.json index 5b3b5696f..93e95c1d1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslam-deployFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslam-deployFunction.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { + "displayName": "test-sqs-lambda/LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "a0daf42aca301ec0c3183de23ae9ec1d2e85ae5c3458322b2ae3d1b8d0d571a4": { + "158b21e6b571c8f58f547f809888dde348f3ec507ffe033e97bb90e43c6359e1": { + "displayName": "sqslam-deployFunction Template", "source": { "path": "sqslam-deployFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-6d5e5b47": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a0daf42aca301ec0c3183de23ae9ec1d2e85ae5c3458322b2ae3d1b8d0d571a4.json", + "objectKey": "158b21e6b571c8f58f547f809888dde348f3ec507ffe033e97bb90e43c6359e1.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslam-deployFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslam-deployFunction.template.json index 4e4800b97..b3b1dd042 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslam-deployFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslam-deployFunction.template.json @@ -102,7 +102,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -116,7 +116,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslamdeployFunctionIntegDefaultTestDeployAssert1ACA7AF2.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslamdeployFunctionIntegDefaultTestDeployAssert1ACA7AF2.assets.json index 33e352438..55f186c0f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslamdeployFunctionIntegDefaultTestDeployAssert1ACA7AF2.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/sqslamdeployFunctionIntegDefaultTestDeployAssert1ACA7AF2.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqslamdeployFunctionIntegDefaultTestDeployAssert1ACA7AF2 Template", "source": { "path": "sqslamdeployFunctionIntegDefaultTestDeployAssert1ACA7AF2.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/tree.json index 12b8c026e..0d3d7ed37 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-deployFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"sqslam-deployFunction":{"id":"sqslam-deployFunction","path":"sqslam-deployFunction","children":{"test-sqs-lambda":{"id":"test-sqs-lambda","path":"sqslam-deployFunction/test-sqs-lambda","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]}}],"Version":"2012-10-17"},"policyName":"testsqslambdaLambdaFunctionServiceRoleDefaultPolicy380B065C","roles":[{"Ref":"testsqslambdaLambdaFunctionServiceRoleF623B438"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction","children":{"Code":{"id":"Code","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testsqslambdaLambdaFunctionServiceRoleF623B438","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqslambdaLambdaFunctioninlinePolicyAddedToExecutionRole0CEC1E15F","roles":[{"Ref":"testsqslambdaLambdaFunctionServiceRoleF623B438"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"SqsEventSource:sqslamdeployFunctiontestsqslambdaqueueAA417393":{"id":"SqsEventSource:sqslamdeployFunctiontestsqslambdaqueueAA417393","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/SqsEventSource:sqslamdeployFunctiontestsqslambdaqueueAA417393","children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/SqsEventSource:sqslamdeployFunctiontestsqslambdaqueueAA417393/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"functionName":{"Ref":"testsqslambdaLambdaFunction58720146"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"queue-dlq":{"id":"queue-dlq","path":"sqslam-deployFunction/test-sqs-lambda/queue-dlq","children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"sqslam-deployFunction/test-sqs-lambda/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdaqueuedlq3A0F89AC"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]}},"queue":{"id":"queue","path":"sqslam-deployFunction/test-sqs-lambda/queue","children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"maxReceiveCount":3}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"sqslam-deployFunction/test-sqs-lambda/queue/Policy","children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdaqueue601203B8"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"sqslam-deployFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"sqslam-deployFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"sqslam-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqslam-deployFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqslam-deployFunction":{"id":"sqslam-deployFunction","path":"sqslam-deployFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test-sqs-lambda":{"id":"test-sqs-lambda","path":"sqslam-deployFunction/test-sqs-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.95.1"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]}}],"Version":"2012-10-17"},"policyName":"testsqslambdaLambdaFunctionServiceRoleDefaultPolicy380B065C","roles":[{"Ref":"testsqslambdaLambdaFunctionServiceRoleF623B438"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["testsqslambdaLambdaFunctionServiceRoleF623B438","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqslambdaLambdaFunctioninlinePolicyAddedToExecutionRole0CEC1E15F","roles":[{"Ref":"testsqslambdaLambdaFunctionServiceRoleF623B438"}]}}}}},"SqsEventSource:sqslamdeployFunctiontestsqslambdaqueueAA417393":{"id":"SqsEventSource:sqslamdeployFunctiontestsqslambdaqueueAA417393","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/SqsEventSource:sqslamdeployFunctiontestsqslambdaqueueAA417393","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/LambdaFunction/SqsEventSource:sqslamdeployFunctiontestsqslambdaqueueAA417393/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"functionName":{"Ref":"testsqslambdaLambdaFunction58720146"}}}}}}}},"queue-dlq":{"id":"queue-dlq","path":"sqslam-deployFunction/test-sqs-lambda/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqslam-deployFunction/test-sqs-lambda/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdaqueuedlq3A0F89AC"}]}}}}}}},"queue":{"id":"queue","path":"sqslam-deployFunction/test-sqs-lambda/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"maxReceiveCount":3}}}},"Policy":{"id":"Policy","path":"sqslam-deployFunction/test-sqs-lambda/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-deployFunction/test-sqs-lambda/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdaqueue601203B8"}]}}}}}}}}},"Integ":{"id":"Integ","path":"sqslam-deployFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqslam-deployFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqslam-deployFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqslam-deployFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-deployFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-deployFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-deployFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-deployFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js new file mode 100644 index 000000000..927da0139 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js @@ -0,0 +1,21 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/cdk.out index 1e02a2deb..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"40.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/integ.json index 06a4c3ef3..f7a64255f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "40.0.0", + "version": "48.0.0", "testCases": { "sqslam-existingFunction/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqslam-existingFunction/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqslamexistingFunctionIntegDefaultTestDeployAssert2E8A6942" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/manifest.json index 69510d609..9943a8dab 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "42.0.0", + "version": "48.0.0", "artifacts": { "sqslamexistingFunctionIntegDefaultTestDeployAssert2E8A6942.assets": { "type": "cdk:asset-manifest", @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f8b7e78de920c51a265aacd7a86ef212a2c81978d657497bc16ac58ef6448800.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/cd30d8e16f3c8cc6056c35c85dad5b2aa221116d34a6cdc7b5846af465b8b0ca.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -359,7 +359,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } }, - "minimumCliVersion": "2.1006.0" + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslam-existingFunction.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslam-existingFunction.assets.json index 25a54d2bf..8c559ac6b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslam-existingFunction.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslam-existingFunction.assets.json @@ -1,28 +1,30 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { - "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f": { + "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640": { + "displayName": "LambdaFunction/Code", "source": { - "path": "asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f", + "path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-9a75cf4c": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip", + "objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "f8b7e78de920c51a265aacd7a86ef212a2c81978d657497bc16ac58ef6448800": { + "cd30d8e16f3c8cc6056c35c85dad5b2aa221116d34a6cdc7b5846af465b8b0ca": { + "displayName": "sqslam-existingFunction Template", "source": { "path": "sqslam-existingFunction.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-e87ebe06": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f8b7e78de920c51a265aacd7a86ef212a2c81978d657497bc16ac58ef6448800.json", + "objectKey": "cd30d8e16f3c8cc6056c35c85dad5b2aa221116d34a6cdc7b5846af465b8b0ca.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslam-existingFunction.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslam-existingFunction.template.json index 59da5daab..135c5d5bc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslam-existingFunction.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslam-existingFunction.template.json @@ -102,7 +102,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + "S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip" }, "Environment": { "Variables": { @@ -116,7 +116,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslamexistingFunctionIntegDefaultTestDeployAssert2E8A6942.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslamexistingFunctionIntegDefaultTestDeployAssert2E8A6942.assets.json index 8dcd23565..ea2ef19f6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslamexistingFunctionIntegDefaultTestDeployAssert2E8A6942.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/sqslamexistingFunctionIntegDefaultTestDeployAssert2E8A6942.assets.json @@ -1,13 +1,14 @@ { - "version": "40.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqslamexistingFunctionIntegDefaultTestDeployAssert2E8A6942 Template", "source": { "path": "sqslamexistingFunctionIntegDefaultTestDeployAssert2E8A6942.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/tree.json index 930c2e315..c4bcace8c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.sqslam-existingFunction.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","children":{"sqslam-existingFunction":{"id":"sqslam-existingFunction","path":"sqslam-existingFunction","children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"sqslam-existingFunction/LambdaFunctionServiceRole","children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"sqslam-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.186.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunctionServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.186.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqslam-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.186.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"LambdaFunction":{"id":"LambdaFunction","path":"sqslam-existingFunction/LambdaFunction","children":{"Code":{"id":"Code","path":"sqslam-existingFunction/LambdaFunction/Code","children":{"Stage":{"id":"Stage","path":"sqslam-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.186.0"}},"AssetBucket":{"id":"AssetBucket","path":"sqslam-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.186.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.186.0"}},"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunction/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.186.0"}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"sqslam-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.186.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}},"SqsEventSource:sqslamexistingFunctiontestsqslambdaqueue16552447":{"id":"SqsEventSource:sqslamexistingFunctiontestsqslambdaqueue16552447","path":"sqslam-existingFunction/LambdaFunction/SqsEventSource:sqslamexistingFunctiontestsqslambdaqueue16552447","children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunction/SqsEventSource:sqslamexistingFunctiontestsqslambdaqueue16552447/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"functionName":{"Ref":"LambdaFunctionBF21E41F"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.186.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.186.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]}},"test-sqs-lambda":{"id":"test-sqs-lambda","path":"sqslam-existingFunction/test-sqs-lambda","children":{"queue-dlq":{"id":"queue-dlq","path":"sqslam-existingFunction/test-sqs-lambda/queue-dlq","children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/test-sqs-lambda/queue-dlq/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"sqslam-existingFunction/test-sqs-lambda/queue-dlq/Policy","children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/test-sqs-lambda/queue-dlq/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdaqueuedlq3A0F89AC"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]}},"queue":{"id":"queue","path":"sqslam-existingFunction/test-sqs-lambda/queue","children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/test-sqs-lambda/queue/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"maxReceiveCount":3}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.186.0"}},"Policy":{"id":"Policy","path":"sqslam-existingFunction/test-sqs-lambda/queue/Policy","children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/test-sqs-lambda/queue/Policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdaqueue601203B8"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.186.0","metadata":[{"queues":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.186.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]}}},"constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.80.0"}},"Integ":{"id":"Integ","path":"sqslam-existingFunction/Integ","children":{"DefaultTest":{"id":"DefaultTest","path":"sqslam-existingFunction/Integ/DefaultTest","children":{"Default":{"id":"Default","path":"sqslam-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqslam-existingFunction/Integ/DefaultTest/DeployAssert","children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.186.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.186.0-alpha.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.186.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.186.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.186.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.186.0"}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqslam-existingFunction":{"id":"sqslam-existingFunction","path":"sqslam-existingFunction","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"sqslam-existingFunction/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"sqslam-existingFunction/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqslam-existingFunction/LambdaFunctionServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunctionServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:ChangeMessageVisibility","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]}}],"Version":"2012-10-17"},"policyName":"LambdaFunctionServiceRoleDefaultPolicy126C8897","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"sqslam-existingFunction/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"sqslam-existingFunction/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"sqslam-existingFunction/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"sqslam-existingFunction/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"sqslam-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"SqsEventSource:sqslamexistingFunctiontestsqslambdaqueue16552447":{"id":"SqsEventSource:sqslamexistingFunctiontestsqslambdaqueue16552447","path":"sqslam-existingFunction/LambdaFunction/SqsEventSource:sqslamexistingFunctiontestsqslambdaqueue16552447","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.EventSourceMapping","version":"2.223.0","metadata":[{"target":"*","batchSize":"*","maxBatchingWindow":"*","maxConcurrency":"*","reportBatchItemFailures":"*","enabled":"*","eventSourceArn":"*","filters":"*","filterEncryption":"*","metricsConfig":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/LambdaFunction/SqsEventSource:sqslamexistingFunctiontestsqslambdaqueue16552447/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnEventSourceMapping","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::EventSourceMapping","aws:cdk:cloudformation:props":{"eventSourceArn":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"functionName":{"Ref":"LambdaFunctionBF21E41F"}}}}}}}},"test-sqs-lambda":{"id":"test-sqs-lambda","path":"sqslam-existingFunction/test-sqs-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-lambda.SqsToLambda","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"sqslam-existingFunction/test-sqs-lambda/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/test-sqs-lambda/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqslam-existingFunction/test-sqs-lambda/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/test-sqs-lambda/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdaqueuedlq3A0F89AC"}]}}}}}}},"queue":{"id":"queue","path":"sqslam-existingFunction/test-sqs-lambda/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/test-sqs-lambda/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqslambdaqueuedlq3A0F89AC","Arn"]},"maxReceiveCount":3}}}},"Policy":{"id":"Policy","path":"sqslam-existingFunction/test-sqs-lambda/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqslam-existingFunction/test-sqs-lambda/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqslambdaqueue601203B8","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqslambdaqueue601203B8"}]}}}}}}}}},"Integ":{"id":"Integ","path":"sqslam-existingFunction/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqslam-existingFunction/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqslam-existingFunction/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqslam-existingFunction/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-existingFunction/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-existingFunction/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqslam-existingFunction/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqslam-existingFunction/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/integ.json index e6b61bf33..aa2b963bf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "sqspstp-custom-log-level/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqspstp-custom-log-level/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqspstpcustomloglevelIntegDefaultTestDeployAssertD542618D" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/manifest.json index 1c0481fff..159c5bd5b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "sqspstpcustomloglevelIntegDefaultTestDeployAssertD542618D.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "sqspstpcustomloglevelIntegDefaultTestDeployAssertD542618D.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "sqspstp-custom-log-level.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/41d8b338f9a9c9b5ee3d4ac8dba4c4ff565841684c143cfe86a343230f4cb394.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/1bfaa23627338447d084a277aa407b277c1ac6b29ceb73dae84d1f50135ea614.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "sqspstp-custom-log-level.assets" ], "metadata": { + "/sqspstp-custom-log-level/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-custom-log-level/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-custom-log-level/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-custom-log-level/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,42 +126,207 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "fifo": "*" + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlq420A82FD" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlqPolicyB1D70483" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "deadLetterQueue": { + "maxReceiveCount": "*", + "queue": "*" + } + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueueA7C76715" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuePolicyFD32B562" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -144,30 +339,102 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-custom-log-level/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -200,6 +467,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstp-custom-log-level.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstp-custom-log-level.assets.json index 00bb55c09..964867c13 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstp-custom-log-level.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstp-custom-log-level.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "41d8b338f9a9c9b5ee3d4ac8dba4c4ff565841684c143cfe86a343230f4cb394": { + "1bfaa23627338447d084a277aa407b277c1ac6b29ceb73dae84d1f50135ea614": { + "displayName": "sqspstp-custom-log-level Template", "source": { "path": "sqspstp-custom-log-level.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d5e44dcb": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "41d8b338f9a9c9b5ee3d4ac8dba4c4ff565841684c143cfe86a343230f4cb394.json", + "objectKey": "1bfaa23627338447d084a277aa407b277c1ac6b29ceb73dae84d1f50135ea614.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstp-custom-log-level.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstp-custom-log-level.template.json index b71b06498..d40225436 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstp-custom-log-level.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstp-custom-log-level.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstpcustomloglevelIntegDefaultTestDeployAssertD542618D.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstpcustomloglevelIntegDefaultTestDeployAssertD542618D.assets.json index 62a2e7917..ba0541223 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstpcustomloglevelIntegDefaultTestDeployAssertD542618D.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/sqspstpcustomloglevelIntegDefaultTestDeployAssertD542618D.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqspstpcustomloglevelIntegDefaultTestDeployAssertD542618D Template", "source": { "path": "sqspstpcustomloglevelIntegDefaultTestDeployAssertD542618D.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/tree.json index ca04d4cd6..c130e8378 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-custom-log-level.js.snapshot/tree.json @@ -1,957 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "sqspstp-custom-log-level": { - "id": "sqspstp-custom-log-level", - "path": "sqspstp-custom-log-level", - "children": { - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "sqspstp-custom-log-level/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-custom-log-level/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-custom-log-level/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "sqspstp-custom-log-level/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct", - "children": { - "queue-dlq": { - "id": "queue-dlq", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueuedlq420A82FD" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "queue": { - "id": "queue", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs", - "redrivePolicy": { - "deadLetterTargetArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "maxReceiveCount": 15 - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueueA7C76715" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/sqspstp-custom-log-leveltest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/sqspstp-custom-log-leveltest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "sqspstp-custom-log-level/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "TRACE" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "sourceParameters": {}, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", - "version": "2.72.0" - } - }, - "Integ": { - "id": "Integ", - "path": "sqspstp-custom-log-level/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "sqspstp-custom-log-level/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "sqspstp-custom-log-level/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "sqspstp-custom-log-level/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-custom-log-level/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-custom-log-level/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.161.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.161.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-custom-log-level/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-custom-log-level/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.161.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqspstp-custom-log-level":{"id":"sqspstp-custom-log-level","path":"sqspstp-custom-log-level","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"sqspstp-custom-log-level/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-custom-log-level/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-custom-log-level/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"sqspstp-custom-log-level/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueuedlq420A82FD"}]}}}}}}},"queue":{"id":"queue","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueueA7C76715"}]}}}}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/sqspstp-custom-log-leveltest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/sqspstp-custom-log-leveltest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"sqspstp-custom-log-level/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"TRACE"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"sourceParameters":{},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"sqspstp-custom-log-level/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqspstp-custom-log-level/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqspstp-custom-log-level/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqspstp-custom-log-level/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-custom-log-level/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-custom-log-level/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-custom-log-level/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-custom-log-level/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/integ.json index c2912b8a8..f847c966a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "sqspstp-existing-queue/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqspstp-existing-queue/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqspstpexistingqueueIntegDefaultTestDeployAssert6DA9FDD7" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/manifest.json index c6d50adff..4619da7e7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "sqspstpexistingqueueIntegDefaultTestDeployAssert6DA9FDD7.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "sqspstpexistingqueueIntegDefaultTestDeployAssert6DA9FDD7.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "sqspstp-existing-queue.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/999c1d09e8422479a8bfc5e3959a462993a6ac0e0a1c76a7c54d28735f9b564b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7dd0bf6ff21ca5aad516d0c29af686484b8f3e6bf4009a712a58f7f3de8d6adb.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,30 +82,103 @@ "sqspstp-existing-queue.assets" ], "metadata": { + "/sqspstp-existing-queue/existing-queue-dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "fifo": "*" + } + } + ], "/sqspstp-existing-queue/existing-queue-dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "existingqueuedlq98283DB9" } ], + "/sqspstp-existing-queue/existing-queue-dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-existing-queue/existing-queue-dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "existingqueuedlqPolicyAA729260" } ], + "/sqspstp-existing-queue/existing-queue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "deadLetterQueue": { + "maxReceiveCount": "*", + "queue": "*" + } + } + } + ], "/sqspstp-existing-queue/existing-queue/Resource": [ { "type": "aws:cdk:logicalId", "data": "existingqueue03D57A53" } ], + "/sqspstp-existing-queue/existing-queue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-existing-queue/existing-queue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "existingqueuePolicy8BCB024D" } ], + "/sqspstp-existing-queue/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-existing-queue/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-existing-queue/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-existing-queue/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -120,18 +191,142 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -144,30 +339,102 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-existing-queue/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/sqspstp-existing-queue/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-existing-queue/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -200,6 +467,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstp-existing-queue.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstp-existing-queue.assets.json index 49143e2cc..c338fb42b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstp-existing-queue.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstp-existing-queue.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "999c1d09e8422479a8bfc5e3959a462993a6ac0e0a1c76a7c54d28735f9b564b": { + "7dd0bf6ff21ca5aad516d0c29af686484b8f3e6bf4009a712a58f7f3de8d6adb": { + "displayName": "sqspstp-existing-queue Template", "source": { "path": "sqspstp-existing-queue.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d952aacc": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "999c1d09e8422479a8bfc5e3959a462993a6ac0e0a1c76a7c54d28735f9b564b.json", + "objectKey": "7dd0bf6ff21ca5aad516d0c29af686484b8f3e6bf4009a712a58f7f3de8d6adb.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstp-existing-queue.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstp-existing-queue.template.json index e67918972..80d78d643 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstp-existing-queue.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstp-existing-queue.template.json @@ -211,7 +211,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstpexistingqueueIntegDefaultTestDeployAssert6DA9FDD7.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstpexistingqueueIntegDefaultTestDeployAssert6DA9FDD7.assets.json index 5f89f68ba..c82a8f686 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstpexistingqueueIntegDefaultTestDeployAssert6DA9FDD7.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/sqspstpexistingqueueIntegDefaultTestDeployAssert6DA9FDD7.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqspstpexistingqueueIntegDefaultTestDeployAssert6DA9FDD7 Template", "source": { "path": "sqspstpexistingqueueIntegDefaultTestDeployAssert6DA9FDD7.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/tree.json index 49e851c4a..2dc0b7672 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-queue.js.snapshot/tree.json @@ -1,957 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "sqspstp-existing-queue": { - "id": "sqspstp-existing-queue", - "path": "sqspstp-existing-queue", - "children": { - "existing-queue-dlq": { - "id": "existing-queue-dlq", - "path": "sqspstp-existing-queue/existing-queue-dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/existing-queue-dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-existing-queue/existing-queue-dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/existing-queue-dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "existingqueuedlq98283DB9", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "existingqueuedlq98283DB9", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "existingqueuedlq98283DB9" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "existing-queue": { - "id": "existing-queue", - "path": "sqspstp-existing-queue/existing-queue", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/existing-queue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs", - "redrivePolicy": { - "deadLetterTargetArn": { - "Fn::GetAtt": [ - "existingqueuedlq98283DB9", - "Arn" - ] - }, - "maxReceiveCount": 15 - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-existing-queue/existing-queue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/existing-queue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "existingqueue03D57A53", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "existingqueue03D57A53", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "existingqueue03D57A53" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "sqspstp-existing-queue/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-existing-queue/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-existing-queue/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "sqspstp-existing-queue/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct", - "children": { - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/sqspstp-existing-queuetest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "existingqueue03D57A53", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/sqspstp-existing-queuetest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "sqspstp-existing-queue/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "existingqueue03D57A53", - "Arn" - ] - }, - "sourceParameters": {}, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", - "version": "2.72.0" - } - }, - "Integ": { - "id": "Integ", - "path": "sqspstp-existing-queue/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "sqspstp-existing-queue/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "sqspstp-existing-queue/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "sqspstp-existing-queue/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-existing-queue/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-existing-queue/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.161.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.161.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-existing-queue/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-existing-queue/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.161.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqspstp-existing-queue":{"id":"sqspstp-existing-queue","path":"sqspstp-existing-queue","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"existing-queue-dlq":{"id":"existing-queue-dlq","path":"sqspstp-existing-queue/existing-queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/existing-queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqspstp-existing-queue/existing-queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/existing-queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["existingqueuedlq98283DB9","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["existingqueuedlq98283DB9","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"existingqueuedlq98283DB9"}]}}}}}}},"existing-queue":{"id":"existing-queue","path":"sqspstp-existing-queue/existing-queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/existing-queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["existingqueuedlq98283DB9","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqspstp-existing-queue/existing-queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/existing-queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["existingqueue03D57A53","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["existingqueue03D57A53","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"existingqueue03D57A53"}]}}}}}}},"lambdas3stp-test":{"id":"lambdas3stp-test","path":"sqspstp-existing-queue/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-existing-queue/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-existing-queue/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-existing-queue/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-existing-queue/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"sqspstp-existing-queue/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions","version":"2.95.1"},"children":{"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/sqspstp-existing-queuetest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["existingqueue03D57A53","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/sqspstp-existing-queuetest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"sqspstp-existing-queue/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["existingqueue03D57A53","Arn"]},"sourceParameters":{},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"sqspstp-existing-queue/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqspstp-existing-queue/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqspstp-existing-queue/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqspstp-existing-queue/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-existing-queue/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-existing-queue/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-existing-queue/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-existing-queue/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/integ.json index ce82e7673..8ae5f0d1c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "sqspstp-existing-state-machine/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqspstp-existing-state-machine/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqspstpexistingstatemachineIntegDefaultTestDeployAssertE03331F3" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/manifest.json index 81383faff..78c4f9dc5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "sqspstpexistingstatemachineIntegDefaultTestDeployAssertE03331F3.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "sqspstpexistingstatemachineIntegDefaultTestDeployAssertE03331F3.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "sqspstp-existing-state-machine.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/efb8bb9236fcf45e0d14ab1780f81cd6356f45fa6efd47a3ac79e7f913fa8fb6.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a878d9008cb0f8cc1eab7f080aa7869652654c26acb1683ac73961e477744dd8.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "sqspstp-existing-state-machine.assets" ], "metadata": { + "/sqspstp-existing-state-machine/lambdas3stp-test-state-machine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-existing-state-machine/lambdas3stp-test-state-machine/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-existing-state-machine/lambdas3stp-test-state-machine/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-existing-state-machine/lambdas3stp-test-state-machine/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,12 +126,99 @@ "data": "lambdas3stpteststatemachine14912CBC" } ], + "/sqspstp-existing-state-machine/s3stp-test-state-machine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-existing-state-machine/s3stp-test-state-machine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/sqspstp-existing-state-machine/s3stp-test-state-machine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-existing-state-machine/s3stp-test-state-machine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "s3stpteststatemachineRoleF95DAD26" } ], + "/sqspstp-existing-state-machine/s3stp-test-state-machine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-existing-state-machine/s3stp-test-state-machine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -114,36 +231,104 @@ "data": "s3stpteststatemachine6717B458" } ], + "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "fifo": "*" + } + } + ], "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlq420A82FD" } ], + "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlqPolicyB1D70483" } ], + "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "deadLetterQueue": { + "maxReceiveCount": "*", + "queue": "*" + } + } + } + ], "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueueA7C76715" } ], + "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuePolicyFD32B562" } ], + "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-existing-state-machine/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -176,6 +361,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstp-existing-state-machine.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstp-existing-state-machine.assets.json index 9b2d7d2f8..0a29c5fd0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstp-existing-state-machine.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstp-existing-state-machine.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "efb8bb9236fcf45e0d14ab1780f81cd6356f45fa6efd47a3ac79e7f913fa8fb6": { + "a878d9008cb0f8cc1eab7f080aa7869652654c26acb1683ac73961e477744dd8": { + "displayName": "sqspstp-existing-state-machine Template", "source": { "path": "sqspstp-existing-state-machine.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-72b6618e": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "efb8bb9236fcf45e0d14ab1780f81cd6356f45fa6efd47a3ac79e7f913fa8fb6.json", + "objectKey": "a878d9008cb0f8cc1eab7f080aa7869652654c26acb1683ac73961e477744dd8.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstp-existing-state-machine.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstp-existing-state-machine.template.json index 118ffef1f..da4c688f4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstp-existing-state-machine.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstp-existing-state-machine.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stpteststatemachineServiceRole06C303CC" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstpexistingstatemachineIntegDefaultTestDeployAssertE03331F3.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstpexistingstatemachineIntegDefaultTestDeployAssertE03331F3.assets.json index 6dc9c80e4..c26f7776a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstpexistingstatemachineIntegDefaultTestDeployAssertE03331F3.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/sqspstpexistingstatemachineIntegDefaultTestDeployAssertE03331F3.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqspstpexistingstatemachineIntegDefaultTestDeployAssertE03331F3 Template", "source": { "path": "sqspstpexistingstatemachineIntegDefaultTestDeployAssertE03331F3.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/tree.json index a4b50ea17..fa49b411c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-existing-state-machine.js.snapshot/tree.json @@ -1,767 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "sqspstp-existing-state-machine": { - "id": "sqspstp-existing-state-machine", - "path": "sqspstp-existing-state-machine", - "children": { - "lambdas3stp-test-state-machine": { - "id": "lambdas3stp-test-state-machine", - "path": "sqspstp-existing-state-machine/lambdas3stp-test-state-machine", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-existing-state-machine/lambdas3stp-test-state-machine/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-existing-state-machine/lambdas3stp-test-state-machine/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/lambdas3stp-test-state-machine/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/lambdas3stp-test-state-machine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stpteststatemachineServiceRole06C303CC", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasks3stp-test-state-machine": { - "id": "tasks3stp-test-state-machine", - "path": "sqspstp-existing-state-machine/tasks3stp-test-state-machine", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "s3stp-test-state-machine": { - "id": "s3stp-test-state-machine", - "path": "sqspstp-existing-state-machine/s3stp-test-state-machine", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-existing-state-machine/s3stp-test-state-machine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-existing-state-machine/s3stp-test-state-machine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/s3stp-test-state-machine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-existing-state-machine/s3stp-test-state-machine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/s3stp-test-state-machine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stpteststatemachine14912CBC", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stpteststatemachine14912CBC", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - } - ], - "Version": "2012-10-17" - }, - "policyName": "s3stpteststatemachineRoleDefaultPolicy9B0BD12F", - "roles": [ - { - "Ref": "s3stpteststatemachineRoleF95DAD26" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/s3stp-test-state-machine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test-state-machine\",\"States\":{\"tasks3stp-test-state-machine\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stpteststatemachine14912CBC", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "roleArn": { - "Fn::GetAtt": [ - "s3stpteststatemachineRoleF95DAD26", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct", - "children": { - "queue-dlq": { - "id": "queue-dlq", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueuedlq420A82FD" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "queue": { - "id": "queue", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs", - "redrivePolicy": { - "deadLetterTargetArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "maxReceiveCount": 15 - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueueA7C76715" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "s3stpteststatemachine6717B458" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/sqspstp-existing-state-machinetest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "sqspstp-existing-state-machine/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "sourceParameters": {}, - "target": { - "Ref": "s3stpteststatemachine6717B458" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", - "version": "2.73.0" - } - }, - "Integ": { - "id": "Integ", - "path": "sqspstp-existing-state-machine/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "sqspstp-existing-state-machine/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "sqspstp-existing-state-machine/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "sqspstp-existing-state-machine/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-existing-state-machine/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-existing-state-machine/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.161.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.161.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-existing-state-machine/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-existing-state-machine/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.161.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqspstp-existing-state-machine":{"id":"sqspstp-existing-state-machine","path":"sqspstp-existing-state-machine","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test-state-machine":{"id":"lambdas3stp-test-state-machine","path":"sqspstp-existing-state-machine/lambdas3stp-test-state-machine","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-existing-state-machine/lambdas3stp-test-state-machine/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-existing-state-machine/lambdas3stp-test-state-machine/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/lambdas3stp-test-state-machine/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/lambdas3stp-test-state-machine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stpteststatemachineServiceRole06C303CC","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test-state-machine":{"id":"tasks3stp-test-state-machine","path":"sqspstp-existing-state-machine/tasks3stp-test-state-machine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"s3stp-test-state-machine":{"id":"s3stp-test-state-machine","path":"sqspstp-existing-state-machine/s3stp-test-state-machine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"definitionBody":"*"},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-existing-state-machine/s3stp-test-state-machine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-existing-state-machine/s3stp-test-state-machine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/s3stp-test-state-machine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-existing-state-machine/s3stp-test-state-machine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/s3stp-test-state-machine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stpteststatemachine14912CBC","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stpteststatemachine14912CBC","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"s3stpteststatemachineRoleDefaultPolicy9B0BD12F","roles":[{"Ref":"s3stpteststatemachineRoleF95DAD26"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/s3stp-test-state-machine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test-state-machine\",\"States\":{\"tasks3stp-test-state-machine\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stpteststatemachine14912CBC","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"roleArn":{"Fn::GetAtt":["s3stpteststatemachineRoleF95DAD26","Arn"]}}}}}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueuedlq420A82FD"}]}}}}}}},"queue":{"id":"queue","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueueA7C76715"}]}}}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"s3stpteststatemachine6717B458"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/sqspstp-existing-state-machinetest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"sqspstp-existing-state-machine/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"sourceParameters":{},"target":{"Ref":"s3stpteststatemachine6717B458"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"sqspstp-existing-state-machine/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqspstp-existing-state-machine/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqspstp-existing-state-machine/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqspstp-existing-state-machine/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-existing-state-machine/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-existing-state-machine/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-existing-state-machine/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-existing-state-machine/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/integ.json index 1a5d1089f..63a48e11d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "sqspstp-filter/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqspstp-filter/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqspstpfilterIntegDefaultTestDeployAssert0C52837E" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/manifest.json index 55c5b08b0..4a8f7e18e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "sqspstpfilterIntegDefaultTestDeployAssert0C52837E.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "sqspstpfilterIntegDefaultTestDeployAssert0C52837E.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "sqspstp-filter.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9718069baa56a46ca68c34209de1d1f4f856a5c5137b748f79e84785db1e5ec0.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a145b3aa12bcecf94bbee84a71ac83fea75ba5fa7f08fcb73d4b95def0ba15a1.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "sqspstp-filter.assets" ], "metadata": { + "/sqspstp-filter/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-filter/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-filter/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-filter/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,42 +126,207 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "fifo": "*" + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlq420A82FD" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlqPolicyB1D70483" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/queue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "deadLetterQueue": { + "maxReceiveCount": "*", + "queue": "*" + } + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/queue/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueueA7C76715" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/queue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/queue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuePolicyFD32B562" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -144,30 +339,102 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/sqspstp-filter/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/sqspstp-filter/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-filter/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -200,6 +467,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstp-filter.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstp-filter.assets.json index 9b4a526a3..2edcedb78 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstp-filter.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstp-filter.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "9718069baa56a46ca68c34209de1d1f4f856a5c5137b748f79e84785db1e5ec0": { + "a145b3aa12bcecf94bbee84a71ac83fea75ba5fa7f08fcb73d4b95def0ba15a1": { + "displayName": "sqspstp-filter Template", "source": { "path": "sqspstp-filter.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d466a440": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "9718069baa56a46ca68c34209de1d1f4f856a5c5137b748f79e84785db1e5ec0.json", + "objectKey": "a145b3aa12bcecf94bbee84a71ac83fea75ba5fa7f08fcb73d4b95def0ba15a1.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstp-filter.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstp-filter.template.json index 01d7b5a37..46cd314a9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstp-filter.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstp-filter.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstpfilterIntegDefaultTestDeployAssert0C52837E.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstpfilterIntegDefaultTestDeployAssert0C52837E.assets.json index 54bc044e7..d1fb1b192 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstpfilterIntegDefaultTestDeployAssert0C52837E.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/sqspstpfilterIntegDefaultTestDeployAssert0C52837E.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqspstpfilterIntegDefaultTestDeployAssert0C52837E Template", "source": { "path": "sqspstpfilterIntegDefaultTestDeployAssert0C52837E.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/tree.json index a57e56adb..9bb7f1215 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-filter.js.snapshot/tree.json @@ -1,965 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "sqspstp-filter": { - "id": "sqspstp-filter", - "path": "sqspstp-filter", - "children": { - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "sqspstp-filter/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-filter/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-filter/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "sqspstp-filter/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "sqspstp-filter/test-sqs-pipes-states-construct", - "children": { - "queue-dlq": { - "id": "queue-dlq", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueuedlq420A82FD" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "queue": { - "id": "queue", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/queue", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/queue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs", - "redrivePolicy": { - "deadLetterTargetArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "maxReceiveCount": 15 - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/queue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/queue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueueA7C76715" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/sqspstp-filtertest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/sqspstp-filtertest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "sqspstp-filter/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "sourceParameters": { - "filterCriteria": { - "filters": [ - { - "pattern": "{\n \"body\": {\n \"state\": [\"open\"]\n }\n}" - } - ] - } - }, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", - "version": "2.72.0" - } - }, - "Integ": { - "id": "Integ", - "path": "sqspstp-filter/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "sqspstp-filter/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "sqspstp-filter/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "sqspstp-filter/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-filter/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-filter/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.161.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.161.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-filter/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-filter/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.161.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqspstp-filter":{"id":"sqspstp-filter","path":"sqspstp-filter","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"sqspstp-filter/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-filter/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-filter/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-filter/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-filter/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"sqspstp-filter/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"sqspstp-filter/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueuedlq420A82FD"}]}}}}}}},"queue":{"id":"queue","path":"sqspstp-filter/test-sqs-pipes-states-construct/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqspstp-filter/test-sqs-pipes-states-construct/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueueA7C76715"}]}}}}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"sqspstp-filter/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/sqspstp-filtertest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"sqspstp-filter/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"sqspstp-filter/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"sqspstp-filter/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"sqspstp-filter/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"sqspstp-filter/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"sqspstp-filter/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"sqspstp-filter/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-filter/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/sqspstp-filtertest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"sqspstp-filter/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"sourceParameters":{"filterCriteria":{"filters":[{"pattern":"{\n \"body\": {\n \"state\": [\"open\"]\n }\n}"}]}},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"sqspstp-filter/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqspstp-filter/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqspstp-filter/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqspstp-filter/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-filter/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-filter/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-filter/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-filter/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/asset.947efcc93dea6b762c3fca8bf09476c9d8fd2490afbd3e08e668328245340cb8/index.js b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/asset.947efcc93dea6b762c3fca8bf09476c9d8fd2490afbd3e08e668328245340cb8/index.js new file mode 100644 index 000000000..35397315e --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/asset.947efcc93dea6b762c3fca8bf09476c9d8fd2490afbd3e08e668328245340cb8/index.js @@ -0,0 +1,22 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +exports.handler = async (event) => { + console.log(event); + const response = event.map((x) =>{ + const body = JSON.parse(x.body); + body.newAttrib = "content"; + return body; + }); + return response; +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/integ.json index ec57a54b0..f5ac218cf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "sqspstp-lambda-function-enrichment/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqspstplambdafunctionenrichmentIntegDefaultTestDeployAssert1F2A8125" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/manifest.json index 0469c4df6..b84b7c68b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "sqspstplambdafunctionenrichmentIntegDefaultTestDeployAssert1F2A8125.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "sqspstplambdafunctionenrichmentIntegDefaultTestDeployAssert1F2A8125.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "sqspstp-lambda-function-enrichment.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/306dbf92baf052489aeba6e3114641443f51d18af1130ff101b339295e2f7776.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9beaa02d1d3d674bf979f400ca87caf8d01b3d751d5877eaa016a67a0ad93349.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "sqspstp-lambda-function-enrichment.assets" ], "metadata": { + "/sqspstp-lambda-function-enrichment/enrichment-function": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "runtime": "*", + "handler": "*", + "code": "*" + } + } + ], + "/sqspstp-lambda-function-enrichment/enrichment-function/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-lambda-function-enrichment/enrichment-function/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-lambda-function-enrichment/enrichment-function/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,6 +126,38 @@ "data": "enrichmentfunction84C1BE72" } ], + "/sqspstp-lambda-function-enrichment/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-lambda-function-enrichment/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-lambda-function-enrichment/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-lambda-function-enrichment/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -108,42 +170,207 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "fifo": "*" + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlq420A82FD" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlqPolicyB1D70483" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "deadLetterQueue": { + "maxReceiveCount": "*", + "queue": "*" + } + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueueA7C76715" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuePolicyFD32B562" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -156,36 +383,156 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructenrichmentpolicytestsqspipesstatesconstructC752476A" } ], + "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -218,6 +565,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstp-lambda-function-enrichment.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstp-lambda-function-enrichment.assets.json index 655b0fb9c..12a1820c6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstp-lambda-function-enrichment.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstp-lambda-function-enrichment.assets.json @@ -1,28 +1,30 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "33adcab38bd8c4e154734b436a40ee81920a89cd6c787ce62302c33df5e1dfcb": { + "947efcc93dea6b762c3fca8bf09476c9d8fd2490afbd3e08e668328245340cb8": { + "displayName": "enrichment-function/Code", "source": { - "path": "asset.33adcab38bd8c4e154734b436a40ee81920a89cd6c787ce62302c33df5e1dfcb", + "path": "asset.947efcc93dea6b762c3fca8bf09476c9d8fd2490afbd3e08e668328245340cb8", "packaging": "zip" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-78f7a5b7": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "33adcab38bd8c4e154734b436a40ee81920a89cd6c787ce62302c33df5e1dfcb.zip", + "objectKey": "947efcc93dea6b762c3fca8bf09476c9d8fd2490afbd3e08e668328245340cb8.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "306dbf92baf052489aeba6e3114641443f51d18af1130ff101b339295e2f7776": { + "9beaa02d1d3d674bf979f400ca87caf8d01b3d751d5877eaa016a67a0ad93349": { + "displayName": "sqspstp-lambda-function-enrichment Template", "source": { "path": "sqspstp-lambda-function-enrichment.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-aa897596": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "306dbf92baf052489aeba6e3114641443f51d18af1130ff101b339295e2f7776.json", + "objectKey": "9beaa02d1d3d674bf979f400ca87caf8d01b3d751d5877eaa016a67a0ad93349.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstp-lambda-function-enrichment.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstp-lambda-function-enrichment.template.json index 66eaa8321..5f32fe5d1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstp-lambda-function-enrichment.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstp-lambda-function-enrichment.template.json @@ -38,7 +38,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "33adcab38bd8c4e154734b436a40ee81920a89cd6c787ce62302c33df5e1dfcb.zip" + "S3Key": "947efcc93dea6b762c3fca8bf09476c9d8fd2490afbd3e08e668328245340cb8.zip" }, "Handler": "index.handler", "Role": { @@ -47,7 +47,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "enrichmentfunctionServiceRoleF21A0515" @@ -115,7 +115,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstplambdafunctionenrichmentIntegDefaultTestDeployAssert1F2A8125.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstplambdafunctionenrichmentIntegDefaultTestDeployAssert1F2A8125.assets.json index 5f52af412..ac58d5ed3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstplambdafunctionenrichmentIntegDefaultTestDeployAssert1F2A8125.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/sqspstplambdafunctionenrichmentIntegDefaultTestDeployAssert1F2A8125.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqspstplambdafunctionenrichmentIntegDefaultTestDeployAssert1F2A8125 Template", "source": { "path": "sqspstplambdafunctionenrichmentIntegDefaultTestDeployAssert1F2A8125.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/tree.json index 09798a6be..93a63b85d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-lambda-function-enrichment.js.snapshot/tree.json @@ -1,1127 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "sqspstp-lambda-function-enrichment": { - "id": "sqspstp-lambda-function-enrichment", - "path": "sqspstp-lambda-function-enrichment", - "children": { - "enrichment-function": { - "id": "enrichment-function", - "path": "sqspstp-lambda-function-enrichment/enrichment-function", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-lambda-function-enrichment/enrichment-function/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-lambda-function-enrichment/enrichment-function/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/enrichment-function/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Code": { - "id": "Code", - "path": "sqspstp-lambda-function-enrichment/enrichment-function/Code", - "children": { - "Stage": { - "id": "Stage", - "path": "sqspstp-lambda-function-enrichment/enrichment-function/Code/Stage", - "constructInfo": { - "fqn": "aws-cdk-lib.AssetStaging", - "version": "2.161.0" - } - }, - "AssetBucket": { - "id": "AssetBucket", - "path": "sqspstp-lambda-function-enrichment/enrichment-function/Code/AssetBucket", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_s3.BucketBase", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_s3_assets.Asset", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/enrichment-function/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "s3Bucket": { - "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" - }, - "s3Key": "33adcab38bd8c4e154734b436a40ee81920a89cd6c787ce62302c33df5e1dfcb.zip" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "enrichmentfunctionServiceRoleF21A0515", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "sqspstp-lambda-function-enrichment/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-lambda-function-enrichment/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-lambda-function-enrichment/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "sqspstp-lambda-function-enrichment/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct", - "children": { - "queue-dlq": { - "id": "queue-dlq", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueuedlq420A82FD" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "queue": { - "id": "queue", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs", - "redrivePolicy": { - "deadLetterTargetArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "maxReceiveCount": 15 - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueueA7C76715" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/sqspstp-lambda-function-enrichmenttest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "enrichmentpolicytest-sqs-pipes-states-construct": { - "id": "enrichmentpolicytest-sqs-pipes-states-construct", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "enrichmentfunction84C1BE72", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructenrichmentpolicytestsqspipesstatesconstructC752476A", - "roles": [ - { - "Ref": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/sqspstp-lambda-function-enrichmenttest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "enrichment": { - "Fn::GetAtt": [ - "enrichmentfunction84C1BE72", - "Arn" - ] - }, - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "TRACE" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "sourceParameters": {}, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", - "version": "2.72.0" - } - }, - "Integ": { - "id": "Integ", - "path": "sqspstp-lambda-function-enrichment/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "sqspstp-lambda-function-enrichment/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "sqspstp-lambda-function-enrichment/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "sqspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.161.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.161.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-lambda-function-enrichment/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-lambda-function-enrichment/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.161.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqspstp-lambda-function-enrichment":{"id":"sqspstp-lambda-function-enrichment","path":"sqspstp-lambda-function-enrichment","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"enrichment-function":{"id":"enrichment-function","path":"sqspstp-lambda-function-enrichment/enrichment-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"runtime":"*","handler":"*","code":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-lambda-function-enrichment/enrichment-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-lambda-function-enrichment/enrichment-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/enrichment-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"sqspstp-lambda-function-enrichment/enrichment-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"sqspstp-lambda-function-enrichment/enrichment-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"sqspstp-lambda-function-enrichment/enrichment-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/enrichment-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"947efcc93dea6b762c3fca8bf09476c9d8fd2490afbd3e08e668328245340cb8.zip"},"handler":"index.handler","role":{"Fn::GetAtt":["enrichmentfunctionServiceRoleF21A0515","Arn"]},"runtime":"nodejs22.x"}}}}},"lambdas3stp-test":{"id":"lambdas3stp-test","path":"sqspstp-lambda-function-enrichment/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-lambda-function-enrichment/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-lambda-function-enrichment/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"sqspstp-lambda-function-enrichment/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueuedlq420A82FD"}]}}}}}}},"queue":{"id":"queue","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueueA7C76715"}]}}}}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/sqspstp-lambda-function-enrichmenttest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"enrichmentpolicytest-sqs-pipes-states-construct":{"id":"enrichmentpolicytest-sqs-pipes-states-construct","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["enrichmentfunction84C1BE72","Arn"]}}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructenrichmentpolicytestsqspipesstatesconstructC752476A","roles":[{"Ref":"testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C"}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/sqspstp-lambda-function-enrichmenttest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"sqspstp-lambda-function-enrichment/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"enrichment":{"Fn::GetAtt":["enrichmentfunction84C1BE72","Arn"]},"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"TRACE"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"sourceParameters":{},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"sqspstp-lambda-function-enrichment/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqspstp-lambda-function-enrichment/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqspstp-lambda-function-enrichment/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-lambda-function-enrichment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-lambda-function-enrichment/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-lambda-function-enrichment/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/integ.json index 30487a45f..cc59a6ce8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "sqspstp-logs-off/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqspstp-logs-off/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqspstplogsoffIntegDefaultTestDeployAssert25C29ACD" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/manifest.json index 3982a409a..dc88b4e6a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "sqspstplogsoffIntegDefaultTestDeployAssert25C29ACD.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "sqspstplogsoffIntegDefaultTestDeployAssert25C29ACD.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "sqspstp-logs-off.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/89d69078e83c9ebe41b3cf105e9646d5e699dda56f3ebddf3e090119e71faab9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d154f866b150e92bcbe93d874931cba92496317b3ef434ea2c6b3c6e66f71582.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "sqspstp-logs-off.assets" ], "metadata": { + "/sqspstp-logs-off/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-logs-off/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-logs-off/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-logs-off/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,42 +126,207 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "fifo": "*" + } + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlq420A82FD" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlqPolicyB1D70483" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/queue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "deadLetterQueue": { + "maxReceiveCount": "*", + "queue": "*" + } + } + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/queue/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueueA7C76715" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/queue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/queue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuePolicyFD32B562" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -144,24 +339,87 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/sqspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -194,6 +452,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstp-logs-off.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstp-logs-off.assets.json index db15a94a5..12bbe078e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstp-logs-off.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstp-logs-off.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "89d69078e83c9ebe41b3cf105e9646d5e699dda56f3ebddf3e090119e71faab9": { + "d154f866b150e92bcbe93d874931cba92496317b3ef434ea2c6b3c6e66f71582": { + "displayName": "sqspstp-logs-off Template", "source": { "path": "sqspstp-logs-off.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-26b7e3a3": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "89d69078e83c9ebe41b3cf105e9646d5e699dda56f3ebddf3e090119e71faab9.json", + "objectKey": "d154f866b150e92bcbe93d874931cba92496317b3ef434ea2c6b3c6e66f71582.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstp-logs-off.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstp-logs-off.template.json index 25e530493..6dde6dd4a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstp-logs-off.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstp-logs-off.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstplogsoffIntegDefaultTestDeployAssert25C29ACD.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstplogsoffIntegDefaultTestDeployAssert25C29ACD.assets.json index 5c2973437..2b20e5eba 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstplogsoffIntegDefaultTestDeployAssert25C29ACD.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/sqspstplogsoffIntegDefaultTestDeployAssert25C29ACD.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqspstplogsoffIntegDefaultTestDeployAssert25C29ACD Template", "source": { "path": "sqspstplogsoffIntegDefaultTestDeployAssert25C29ACD.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/tree.json index cf89ae5c2..2015cee50 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-logs-off.js.snapshot/tree.json @@ -1,902 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "sqspstp-logs-off": { - "id": "sqspstp-logs-off", - "path": "sqspstp-logs-off", - "children": { - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "sqspstp-logs-off/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-logs-off/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-logs-off/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "sqspstp-logs-off/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct", - "children": { - "queue-dlq": { - "id": "queue-dlq", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueuedlq420A82FD" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "queue": { - "id": "queue", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/queue", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/queue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs", - "redrivePolicy": { - "deadLetterTargetArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "maxReceiveCount": 15 - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/queue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/queue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueueA7C76715" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/sqspstp-logs-offtest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "sqspstp-logs-off/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "sourceParameters": {}, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", - "version": "2.72.0" - } - }, - "Integ": { - "id": "Integ", - "path": "sqspstp-logs-off/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "sqspstp-logs-off/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "sqspstp-logs-off/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "sqspstp-logs-off/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-logs-off/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-logs-off/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.161.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.161.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-logs-off/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-logs-off/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.161.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqspstp-logs-off":{"id":"sqspstp-logs-off","path":"sqspstp-logs-off","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"sqspstp-logs-off/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-logs-off/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-logs-off/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-logs-off/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-logs-off/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"sqspstp-logs-off/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"sqspstp-logs-off/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueuedlq420A82FD"}]}}}}}}},"queue":{"id":"queue","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueueA7C76715"}]}}}}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/sqspstp-logs-offtest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"sqspstp-logs-off/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"sourceParameters":{},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"sqspstp-logs-off/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqspstp-logs-off/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqspstp-logs-off/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqspstp-logs-off/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-logs-off/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-logs-off/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-logs-off/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-logs-off/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/integ.json index 3a9622c9e..5e67f5e7d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "sqspstp-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqspstp-no-arguments/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqspstpnoargumentsIntegDefaultTestDeployAssert83953622" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/manifest.json index 856a9a94c..66d5ad232 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "sqspstpnoargumentsIntegDefaultTestDeployAssert83953622.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "sqspstpnoargumentsIntegDefaultTestDeployAssert83953622.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "sqspstp-no-arguments.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/20815c0b1c24ed41b6c31ad1fb21b7cc5502c5f051ec5a21657d78b5bfd7efbd.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8f02f45eaec8c9dfbcc2c6f339c67cf7c7f75afafdf606046c065f43f8096ce4.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "sqspstp-no-arguments.assets" ], "metadata": { + "/sqspstp-no-arguments/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-no-arguments/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-no-arguments/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-no-arguments/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,42 +126,207 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "fifo": "*" + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlq420A82FD" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlqPolicyB1D70483" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/queue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "deadLetterQueue": { + "maxReceiveCount": "*", + "queue": "*" + } + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/queue/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueueA7C76715" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/queue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/queue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuePolicyFD32B562" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -144,30 +339,102 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/sqspstp-no-arguments/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-no-arguments/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -200,6 +467,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstp-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstp-no-arguments.assets.json index 9e5153e92..907d5c170 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstp-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstp-no-arguments.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "20815c0b1c24ed41b6c31ad1fb21b7cc5502c5f051ec5a21657d78b5bfd7efbd": { + "8f02f45eaec8c9dfbcc2c6f339c67cf7c7f75afafdf606046c065f43f8096ce4": { + "displayName": "sqspstp-no-arguments Template", "source": { "path": "sqspstp-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-25107f4d": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "20815c0b1c24ed41b6c31ad1fb21b7cc5502c5f051ec5a21657d78b5bfd7efbd.json", + "objectKey": "8f02f45eaec8c9dfbcc2c6f339c67cf7c7f75afafdf606046c065f43f8096ce4.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstp-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstp-no-arguments.template.json index 4d703dac8..05a814ae8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstp-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstp-no-arguments.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstpnoargumentsIntegDefaultTestDeployAssert83953622.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstpnoargumentsIntegDefaultTestDeployAssert83953622.assets.json index 8d519bfdb..62daae9d8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstpnoargumentsIntegDefaultTestDeployAssert83953622.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/sqspstpnoargumentsIntegDefaultTestDeployAssert83953622.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqspstpnoargumentsIntegDefaultTestDeployAssert83953622 Template", "source": { "path": "sqspstpnoargumentsIntegDefaultTestDeployAssert83953622.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/tree.json index b638a39cd..be162ebe5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-no-arguments.js.snapshot/tree.json @@ -1,957 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "sqspstp-no-arguments": { - "id": "sqspstp-no-arguments", - "path": "sqspstp-no-arguments", - "children": { - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "sqspstp-no-arguments/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-no-arguments/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-no-arguments/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "sqspstp-no-arguments/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct", - "children": { - "queue-dlq": { - "id": "queue-dlq", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueuedlq420A82FD" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "queue": { - "id": "queue", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/queue", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/queue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs", - "redrivePolicy": { - "deadLetterTargetArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "maxReceiveCount": 15 - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/queue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/queue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueueA7C76715" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/sqspstp-no-argumentstest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/sqspstp-no-argumentstest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "sqspstp-no-arguments/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "sourceParameters": {}, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", - "version": "2.72.0" - } - }, - "Integ": { - "id": "Integ", - "path": "sqspstp-no-arguments/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "sqspstp-no-arguments/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "sqspstp-no-arguments/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "sqspstp-no-arguments/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.161.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.161.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-no-arguments/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-no-arguments/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.161.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqspstp-no-arguments":{"id":"sqspstp-no-arguments","path":"sqspstp-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"sqspstp-no-arguments/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-no-arguments/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-no-arguments/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-no-arguments/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-no-arguments/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"sqspstp-no-arguments/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueuedlq420A82FD"}]}}}}}}},"queue":{"id":"queue","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueueA7C76715"}]}}}}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/sqspstp-no-argumentstest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/sqspstp-no-argumentstest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"sqspstp-no-arguments/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"sourceParameters":{},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"sqspstp-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqspstp-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqspstp-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqspstp-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/integ.json index 64301ae53..7159b9036 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "sqspstp-set-queue-batch-size/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqspstp-set-queue-batch-size/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqspstpsetqueuebatchsizeIntegDefaultTestDeployAssertA1752E9D" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/manifest.json index 97818f9c7..0f5e63ad8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "sqspstpsetqueuebatchsizeIntegDefaultTestDeployAssertA1752E9D.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "sqspstpsetqueuebatchsizeIntegDefaultTestDeployAssertA1752E9D.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "sqspstp-set-queue-batch-size.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b608de4251b772257f786d1776e1bb2dbb6566658681631d71e5741f2e95c986.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ee779e33133c1fe27cf3f0d25db292cd35e2852b99742d5c8c22860e9afeda00.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "sqspstp-set-queue-batch-size.assets" ], "metadata": { + "/sqspstp-set-queue-batch-size/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-set-queue-batch-size/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-set-queue-batch-size/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-set-queue-batch-size/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,42 +126,207 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "fifo": "*" + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlq420A82FD" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlqPolicyB1D70483" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "deadLetterQueue": { + "maxReceiveCount": "*", + "queue": "*" + } + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueueA7C76715" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuePolicyFD32B562" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -144,30 +339,102 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + } + ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -200,6 +467,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstp-set-queue-batch-size.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstp-set-queue-batch-size.assets.json index 8518f2211..d1583f30f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstp-set-queue-batch-size.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstp-set-queue-batch-size.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "b608de4251b772257f786d1776e1bb2dbb6566658681631d71e5741f2e95c986": { + "ee779e33133c1fe27cf3f0d25db292cd35e2852b99742d5c8c22860e9afeda00": { + "displayName": "sqspstp-set-queue-batch-size Template", "source": { "path": "sqspstp-set-queue-batch-size.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-004ead29": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b608de4251b772257f786d1776e1bb2dbb6566658681631d71e5741f2e95c986.json", + "objectKey": "ee779e33133c1fe27cf3f0d25db292cd35e2852b99742d5c8c22860e9afeda00.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstp-set-queue-batch-size.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstp-set-queue-batch-size.template.json index d3a6340f7..a42c524da 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstp-set-queue-batch-size.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstp-set-queue-batch-size.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstpsetqueuebatchsizeIntegDefaultTestDeployAssertA1752E9D.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstpsetqueuebatchsizeIntegDefaultTestDeployAssertA1752E9D.assets.json index 2323278a0..422b8c21c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstpsetqueuebatchsizeIntegDefaultTestDeployAssertA1752E9D.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/sqspstpsetqueuebatchsizeIntegDefaultTestDeployAssertA1752E9D.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqspstpsetqueuebatchsizeIntegDefaultTestDeployAssertA1752E9D Template", "source": { "path": "sqspstpsetqueuebatchsizeIntegDefaultTestDeployAssertA1752E9D.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/tree.json index a51ff4640..06eecbecd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-set-queue-batch-size.js.snapshot/tree.json @@ -1,961 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "sqspstp-set-queue-batch-size": { - "id": "sqspstp-set-queue-batch-size", - "path": "sqspstp-set-queue-batch-size", - "children": { - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "sqspstp-set-queue-batch-size/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-set-queue-batch-size/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-set-queue-batch-size/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "sqspstp-set-queue-batch-size/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct", - "children": { - "queue-dlq": { - "id": "queue-dlq", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueuedlq420A82FD" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "queue": { - "id": "queue", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs", - "redrivePolicy": { - "deadLetterTargetArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "maxReceiveCount": 15 - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueueA7C76715" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/sqspstp-set-queue-batch-sizetest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/sqspstp-set-queue-batch-sizetest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "INFO" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "sourceParameters": { - "sqsQueueParameters": { - "batchSize": 3 - } - }, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", - "version": "2.72.0" - } - }, - "Integ": { - "id": "Integ", - "path": "sqspstp-set-queue-batch-size/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "sqspstp-set-queue-batch-size/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "sqspstp-set-queue-batch-size/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "sqspstp-set-queue-batch-size/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-set-queue-batch-size/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-set-queue-batch-size/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.161.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.161.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-set-queue-batch-size/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-set-queue-batch-size/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.161.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqspstp-set-queue-batch-size":{"id":"sqspstp-set-queue-batch-size","path":"sqspstp-set-queue-batch-size","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdas3stp-test":{"id":"lambdas3stp-test","path":"sqspstp-set-queue-batch-size/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-set-queue-batch-size/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-set-queue-batch-size/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"sqspstp-set-queue-batch-size/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueuedlq420A82FD"}]}}}}}}},"queue":{"id":"queue","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueueA7C76715"}]}}}}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/sqspstp-set-queue-batch-sizetest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/sqspstp-set-queue-batch-sizetest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"sqspstp-set-queue-batch-size/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"INFO"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"sourceParameters":{"sqsQueueParameters":{"batchSize":3}},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"sqspstp-set-queue-batch-size/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqspstp-set-queue-batch-size/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqspstp-set-queue-batch-size/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqspstp-set-queue-batch-size/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-set-queue-batch-size/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-set-queue-batch-size/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-set-queue-batch-size/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-set-queue-batch-size/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/cdk.out index c6e612584..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"38.0.1"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/integ.json index 3f3c9170a..1d58c6f57 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "testCases": { "sqspstp-state-machine-enrichment/Integ/DefaultTest": { "stacks": [ @@ -8,5 +8,6 @@ "assertionStack": "sqspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert", "assertionStackName": "sqspstpstatemachineenrichmentIntegDefaultTestDeployAssert47A5DE6D" } - } + }, + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/manifest.json index 34dc7693f..312f49b06 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "38.0.1", + "version": "48.0.0", "artifacts": { "sqspstpstatemachineenrichmentIntegDefaultTestDeployAssert47A5DE6D.assets": { "type": "cdk:asset-manifest", @@ -16,7 +16,6 @@ "templateFile": "sqspstpstatemachineenrichmentIntegDefaultTestDeployAssert47A5DE6D.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", @@ -65,10 +64,9 @@ "templateFile": "sqspstp-state-machine-enrichment.template.json", "terminationProtection": false, "validateOnSynth": false, - "notificationArns": [], "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/37e120129bdd6a92826312af8144843d8677b653caa62941beadbab36762289e.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/aec3a37be84fdcce2f67b1c3ca7f6c86cf5bbbef33763d094018e566e2a0c4ae.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -84,6 +82,38 @@ "sqspstp-state-machine-enrichment.assets" ], "metadata": { + "/sqspstp-state-machine-enrichment/lambdatemp": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-state-machine-enrichment/lambdatemp/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-state-machine-enrichment/lambdatemp/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-state-machine-enrichment/lambdatemp/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -96,12 +126,100 @@ "data": "lambdatemp1CD2462E" } ], + "/sqspstp-state-machine-enrichment/temp": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "stateMachineType": "EXPRESS", + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-state-machine-enrichment/temp/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/sqspstp-state-machine-enrichment/temp/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-state-machine-enrichment/temp/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "tempRole0DF4072C" } ], + "/sqspstp-state-machine-enrichment/temp/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-state-machine-enrichment/temp/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -114,6 +232,38 @@ "data": "temp3A4F7567" } ], + "/sqspstp-state-machine-enrichment/lambdas3stp-test": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "code": "*", + "runtime": "*", + "handler": "*" + } + } + ], + "/sqspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "managedPolicies": [ + { + "managedPolicyArn": "*" + } + ] + } + } + ], + "/sqspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/ImportServiceRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/Resource": [ { "type": "aws:cdk:logicalId", @@ -126,42 +276,207 @@ "data": "lambdas3stptest9FBDC6CE" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "fifo": "*" + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlq420A82FD" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuedlqPolicyB1D70483" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "encryption": "KMS_MANAGED", + "deadLetterQueue": { + "maxReceiveCount": "*", + "queue": "*" + } + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueueA7C76715" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue/Policy": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "queues": [ + "*" + ] + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue/Policy/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructqueuePolicyFD32B562" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineLogGroupADE94F1D" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "logs": { + "destination": "*", + "level": "ERROR" + }, + "definitionBody": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToRolePolicy": [ + {} + ] + } + } + ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -174,36 +489,156 @@ "data": "testsqspipesstatesconstructStateMachine29272AA9" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionFailedAlarm1002FF55" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionThrottledAlarm0242B01A" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "metric": { + "warnings": "*", + "warningsV2": "*" + }, + "threshold": "*", + "evaluationPeriods": "*", + "comparisonOperator": "*", + "alarmDescription": "*" + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructExecutionAbortedAlarm14349A7B" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + }, + "inlinePolicies": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + } + ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "statements": "*" + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", "data": "testsqspipesstatesconstructenrichmentpolicytestsqspipesstatesconstructC752476A" } ], + "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "retention": 9999, + "logGroupName": "*" + } + } + ], "/sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource": [ { "type": "aws:cdk:logicalId", @@ -236,6 +671,500 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { + "recommendedValue": true, + "explanation": "Pass signingProfileName to CfnSigningProfile" + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { + "recommendedValue": true, + "explanation": "Disable implicit openListener when custom security groups are provided" + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs." + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration" + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" + } + } + } } - } + }, + "minimumCliVersion": "2.1021.0" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstp-state-machine-enrichment.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstp-state-machine-enrichment.assets.json index 0a92e2752..378fe6c57 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstp-state-machine-enrichment.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstp-state-machine-enrichment.assets.json @@ -1,15 +1,16 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { - "37e120129bdd6a92826312af8144843d8677b653caa62941beadbab36762289e": { + "aec3a37be84fdcce2f67b1c3ca7f6c86cf5bbbef33763d094018e566e2a0c4ae": { + "displayName": "sqspstp-state-machine-enrichment Template", "source": { "path": "sqspstp-state-machine-enrichment.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-530701aa": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "37e120129bdd6a92826312af8144843d8677b653caa62941beadbab36762289e.json", + "objectKey": "aec3a37be84fdcce2f67b1c3ca7f6c86cf5bbbef33763d094018e566e2a0c4ae.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstp-state-machine-enrichment.template.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstp-state-machine-enrichment.template.json index d06a5aaed..89cff95b6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstp-state-machine-enrichment.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstp-state-machine-enrichment.template.json @@ -44,7 +44,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdatempServiceRoleA1A0368B" @@ -220,7 +220,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "lambdas3stptestServiceRoleF17BB6C7" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstpstatemachineenrichmentIntegDefaultTestDeployAssert47A5DE6D.assets.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstpstatemachineenrichmentIntegDefaultTestDeployAssert47A5DE6D.assets.json index 3a89d33e3..7c19b56ef 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstpstatemachineenrichmentIntegDefaultTestDeployAssert47A5DE6D.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/sqspstpstatemachineenrichmentIntegDefaultTestDeployAssert47A5DE6D.assets.json @@ -1,13 +1,14 @@ { - "version": "38.0.1", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "sqspstpstatemachineenrichmentIntegDefaultTestDeployAssert47A5DE6D Template", "source": { "path": "sqspstpstatemachineenrichmentIntegDefaultTestDeployAssert47A5DE6D.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/tree.json index 22513ac63..72287b6ac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/integ.sqspstp-state-machine-enrichment.js.snapshot/tree.json @@ -1,1252 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "sqspstp-state-machine-enrichment": { - "id": "sqspstp-state-machine-enrichment", - "path": "sqspstp-state-machine-enrichment", - "children": { - "lambdatemp": { - "id": "lambdatemp", - "path": "sqspstp-state-machine-enrichment/lambdatemp", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-state-machine-enrichment/lambdatemp/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-state-machine-enrichment/lambdatemp/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/lambdatemp/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/lambdatemp/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdatempServiceRoleA1A0368B", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasktemp": { - "id": "tasktemp", - "path": "sqspstp-state-machine-enrichment/tasktemp", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "temp": { - "id": "temp", - "path": "sqspstp-state-machine-enrichment/temp", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-state-machine-enrichment/temp/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-state-machine-enrichment/temp/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/temp/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-state-machine-enrichment/temp/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/temp/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdatemp1CD2462E", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdatemp1CD2462E", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - } - ], - "Version": "2012-10-17" - }, - "policyName": "tempRoleDefaultPolicy6B471CA6", - "roles": [ - { - "Ref": "tempRole0DF4072C" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/temp/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasktemp\",\"States\":{\"tasktemp\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdatemp1CD2462E", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "roleArn": { - "Fn::GetAtt": [ - "tempRole0DF4072C", - "Arn" - ] - }, - "stateMachineType": "EXPRESS" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "lambdas3stp-test": { - "id": "lambdas3stp-test", - "path": "sqspstp-state-machine-enrichment/lambdas3stp-test", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "sqspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "sqspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/lambdas3stp-test/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "exports.handler = async (event) => console.log(event)" - }, - "handler": "index.handler", - "role": { - "Fn::GetAtt": [ - "lambdas3stptestServiceRoleF17BB6C7", - "Arn" - ] - }, - "runtime": "nodejs20.x" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_lambda.Function", - "version": "2.161.0" - } - }, - "tasks3stp-test": { - "id": "tasks3stp-test", - "path": "sqspstp-state-machine-enrichment/tasks3stp-test", - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke", - "version": "2.161.0" - } - }, - "test-sqs-pipes-states-construct": { - "id": "test-sqs-pipes-states-construct", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct", - "children": { - "queue-dlq": { - "id": "queue-dlq", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueuedlq420A82FD" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "queue": { - "id": "queue", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::Queue", - "aws:cdk:cloudformation:props": { - "kmsMasterKeyId": "alias/aws/sqs", - "redrivePolicy": { - "deadLetterTargetArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueuedlq420A82FD", - "Arn" - ] - }, - "maxReceiveCount": 15 - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueue", - "version": "2.161.0" - } - }, - "Policy": { - "id": "Policy", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue/Policy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue/Policy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SQS::QueuePolicy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:AddPermission", - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage", - "sqs:RemovePermission", - "sqs:SendMessage", - "sqs:SetQueueAttributes" - ], - "Effect": "Allow", - "Principal": { - "AWS": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::", - { - "Ref": "AWS::AccountId" - }, - ":root" - ] - ] - } - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "QueueOwnerOnlyAccess" - }, - { - "Action": "SQS:*", - "Condition": { - "Bool": { - "aws:SecureTransport": "false" - } - }, - "Effect": "Deny", - "Principal": { - "AWS": "*" - }, - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "Sid": "HttpsOnly" - } - ], - "Version": "2012-10-17" - }, - "queues": [ - { - "Ref": "testsqspipesstatesconstructqueueA7C76715" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.CfnQueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.QueuePolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_sqs.Queue", - "version": "2.161.0" - } - }, - "StateMachineLogGroup": { - "id": "StateMachineLogGroup", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/sqspstp-state-machine-enrichmenttest-sqs-pipes-states-constructStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "StateMachine": { - "id": "StateMachine", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine", - "children": { - "Role": { - "id": "Role", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2", - "roles": [ - { - "Ref": "testsqspipesstatesconstructStateMachineRoleBF97BFC0" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", - "aws:cdk:cloudformation:props": { - "definitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdas3stptest9FBDC6CE", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "loggingConfiguration": { - "destinations": [ - { - "cloudWatchLogsLogGroup": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineLogGroupADE94F1D", - "Arn" - ] - } - } - } - ], - "level": "ERROR" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructStateMachineRoleBF97BFC0", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", - "version": "2.161.0" - } - }, - "ExecutionFailedAlarm": { - "id": "ExecutionFailedAlarm", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsFailed", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionThrottledAlarm": { - "id": "ExecutionThrottledAlarm", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionThrottled", - "namespace": "AWS/States", - "period": 300, - "statistic": "Sum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "ExecutionAbortedAlarm": { - "id": "ExecutionAbortedAlarm", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", - "aws:cdk:cloudformation:props": { - "alarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "comparisonOperator": "GreaterThanOrEqualToThreshold", - "dimensions": [ - { - "name": "StateMachineArn", - "value": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "evaluationPeriods": 1, - "metricName": "ExecutionsAborted", - "namespace": "AWS/States", - "period": 300, - "statistic": "Maximum", - "threshold": 1 - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", - "version": "2.161.0" - } - }, - "PipeRole--test-sqs-pipes-states-construct": { - "id": "PipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct", - "children": { - "ImportPipeRole--test-sqs-pipes-states-construct": { - "id": "ImportPipeRole--test-sqs-pipes-states-construct", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "2.161.0" - } - }, - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "pipes.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "policies": [ - { - "policyName": "sourcePolicy", - "policyDocument": { - "Statement": [ - { - "Action": [ - "sqs:DeleteMessage", - "sqs:GetQueueAttributes", - "sqs:ReceiveMessage" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - } - }, - { - "policyName": "targetPolicy", - "policyDocument": { - "Statement": [ - { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - } - } - ], - "Version": "2012-10-17" - } - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "2.161.0" - } - }, - "enrichmentpolicytest-sqs-pipes-states-construct": { - "id": "enrichmentpolicytest-sqs-pipes-states-construct", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": "states:StartSyncExecution", - "Effect": "Allow", - "Resource": { - "Ref": "temp3A4F7567" - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "testsqspipesstatesconstructenrichmentpolicytestsqspipesstatesconstructC752476A", - "roles": [ - { - "Ref": "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "2.161.0" - } - }, - "LogGroup-test-sqs-pipes-states-construct": { - "id": "LogGroup-test-sqs-pipes-states-construct", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct", - "children": { - "Resource": { - "id": "Resource", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", - "aws:cdk:cloudformation:props": { - "logGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/pipes/constructs/sqspstp-state-machine-enrichmenttest-sqs-pipes-states-constructPipesLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_logs.LogGroup", - "version": "2.161.0" - } - }, - "pipe-test-sqs-pipes-states-construct": { - "id": "pipe-test-sqs-pipes-states-construct", - "path": "sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Pipes::Pipe", - "aws:cdk:cloudformation:props": { - "enrichment": { - "Ref": "temp3A4F7567" - }, - "logConfiguration": { - "cloudwatchLogsLogDestination": { - "logGroupArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15", - "Arn" - ] - } - }, - "level": "TRACE" - }, - "roleArn": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C", - "Arn" - ] - }, - "source": { - "Fn::GetAtt": [ - "testsqspipesstatesconstructqueueA7C76715", - "Arn" - ] - }, - "sourceParameters": {}, - "target": { - "Ref": "testsqspipesstatesconstructStateMachine29272AA9" - }, - "targetParameters": { - "stepFunctionStateMachineParameters": { - "invocationType": "FIRE_AND_FORGET" - } - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_pipes.CfnPipe", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", - "version": "2.72.0" - } - }, - "Integ": { - "id": "Integ", - "path": "sqspstp-state-machine-enrichment/Integ", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "sqspstp-state-machine-enrichment/Integ/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "sqspstp-state-machine-enrichment/Integ/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "sqspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "2.161.0-alpha.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "2.161.0-alpha.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "sqspstp-state-machine-enrichment/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "2.161.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "sqspstp-state-machine-enrichment/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "2.161.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "2.161.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.4.2" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "2.161.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"sqspstp-state-machine-enrichment":{"id":"sqspstp-state-machine-enrichment","path":"sqspstp-state-machine-enrichment","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"lambdatemp":{"id":"lambdatemp","path":"sqspstp-state-machine-enrichment/lambdatemp","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-state-machine-enrichment/lambdatemp/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-state-machine-enrichment/lambdatemp/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/lambdatemp/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/lambdatemp/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdatempServiceRoleA1A0368B","Arn"]},"runtime":"nodejs22.x"}}}}},"tasktemp":{"id":"tasktemp","path":"sqspstp-state-machine-enrichment/tasktemp","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"temp":{"id":"temp","path":"sqspstp-state-machine-enrichment/temp","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"stateMachineType":"EXPRESS","definitionBody":"*"},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-state-machine-enrichment/temp/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-state-machine-enrichment/temp/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/temp/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-state-machine-enrichment/temp/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/temp/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdatemp1CD2462E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdatemp1CD2462E","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"tempRoleDefaultPolicy6B471CA6","roles":[{"Ref":"tempRole0DF4072C"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/temp/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasktemp\",\"States\":{\"tasktemp\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdatemp1CD2462E","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"roleArn":{"Fn::GetAtt":["tempRole0DF4072C","Arn"]},"stateMachineType":"EXPRESS"}}}}},"lambdas3stp-test":{"id":"lambdas3stp-test","path":"sqspstp-state-machine-enrichment/lambdas3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"sqspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"sqspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/lambdas3stp-test/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/lambdas3stp-test/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"zipFile":"exports.handler = async (event) => console.log(event)"},"handler":"index.handler","role":{"Fn::GetAtt":["lambdas3stptestServiceRoleF17BB6C7","Arn"]},"runtime":"nodejs22.x"}}}}},"tasks3stp-test":{"id":"tasks3stp-test","path":"sqspstp-state-machine-enrichment/tasks3stp-test","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke","version":"2.223.0"}},"test-sqs-pipes-states-construct":{"id":"test-sqs-pipes-states-construct","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions","version":"2.95.1"},"children":{"queue-dlq":{"id":"queue-dlq","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","fifo":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs"}}},"Policy":{"id":"Policy","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue-dlq/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueuedlq420A82FD"}]}}}}}}},"queue":{"id":"queue","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.Queue","version":"2.223.0","metadata":[{"encryption":"KMS_MANAGED","deadLetterQueue":{"maxReceiveCount":"*","queue":"*"}}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueue","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::Queue","aws:cdk:cloudformation:props":{"kmsMasterKeyId":"alias/aws/sqs","redrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["testsqspipesstatesconstructqueuedlq420A82FD","Arn"]},"maxReceiveCount":15}}}},"Policy":{"id":"Policy","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.QueuePolicy","version":"2.223.0","metadata":[{"queues":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/queue/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_sqs.CfnQueuePolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::SQS::QueuePolicy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["sqs:AddPermission","sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage","sqs:RemovePermission","sqs:SendMessage","sqs:SetQueueAttributes"],"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"QueueOwnerOnlyAccess"},{"Action":"SQS:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"Sid":"HttpsOnly"}],"Version":"2012-10-17"},"queues":[{"Ref":"testsqspipesstatesconstructqueueA7C76715"}]}}}}}}},"StateMachineLogGroup":{"id":"StateMachineLogGroup","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachineLogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/states/constructs/sqspstp-state-machine-enrichmenttest-sqs-pipes-states-constructStateMachineLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"StateMachine":{"id":"StateMachine","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.StateMachine","version":"2.223.0","metadata":[{"logs":{"destination":"*","level":"ERROR"},"definitionBody":"*"},{"addToRolePolicy":[{}]},{"addToRolePolicy":[{}]}]},"children":{"Role":{"id":"Role","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},":*"]]}]},{"Action":["logs:CreateLogDelivery","logs:DeleteLogDelivery","logs:DescribeLogGroups","logs:DescribeResourcePolicies","logs:GetLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:UpdateLogDelivery"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructStateMachineRoleDefaultPolicyD1BA2BF2","roles":[{"Ref":"testsqspipesstatesconstructStateMachineRoleBF97BFC0"}]}}}}}}},"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/StateMachine/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_stepfunctions.CfnStateMachine","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::StepFunctions::StateMachine","aws:cdk:cloudformation:props":{"definitionString":{"Fn::Join":["",["{\"StartAt\":\"tasks3stp-test\",\"States\":{\"tasks3stp-test\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["lambdas3stptest9FBDC6CE","Arn"]},"\",\"Payload.$\":\"$\"}}}}"]]},"loggingConfiguration":{"destinations":[{"cloudWatchLogsLogGroup":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineLogGroupADE94F1D","Arn"]}}}],"level":"ERROR"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructStateMachineRoleBF97BFC0","Arn"]}}}}}},"ExecutionFailedAlarm":{"id":"ExecutionFailedAlarm","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionFailedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that failed exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsFailed","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionThrottledAlarm":{"id":"ExecutionThrottledAlarm","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionThrottledAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that throttled exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionThrottled","namespace":"AWS/States","period":300,"statistic":"Sum","threshold":1}}}}},"ExecutionAbortedAlarm":{"id":"ExecutionAbortedAlarm","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.Alarm","version":"2.223.0","metadata":[{"metric":{"warnings":"*","warningsV2":"*"},"threshold":"*","evaluationPeriods":"*","comparisonOperator":"*","alarmDescription":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/ExecutionAbortedAlarm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudwatch.CfnAlarm","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudWatch::Alarm","aws:cdk:cloudformation:props":{"alarmDescription":"Alarm for the number of executions that aborted exceeded the threshold of 1. ","comparisonOperator":"GreaterThanOrEqualToThreshold","dimensions":[{"name":"StateMachineArn","value":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"evaluationPeriods":1,"metricName":"ExecutionsAborted","namespace":"AWS/States","period":300,"statistic":"Maximum","threshold":1}}}}},"PipeRole--test-sqs-pipes-states-construct":{"id":"PipeRole--test-sqs-pipes-states-construct","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportPipeRole--test-sqs-pipes-states-construct":{"id":"ImportPipeRole--test-sqs-pipes-states-construct","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/ImportPipeRole--test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/PipeRole--test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"pipes.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"sourcePolicy","policyDocument":{"Statement":[{"Action":["sqs:DeleteMessage","sqs:GetQueueAttributes","sqs:ReceiveMessage"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]}}],"Version":"2012-10-17"}},{"policyName":"targetPolicy","policyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"}}],"Version":"2012-10-17"}}]}}}}},"enrichmentpolicytest-sqs-pipes-states-construct":{"id":"enrichmentpolicytest-sqs-pipes-states-construct","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/enrichmentpolicytest-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"states:StartSyncExecution","Effect":"Allow","Resource":{"Ref":"temp3A4F7567"}}],"Version":"2012-10-17"},"policyName":"testsqspipesstatesconstructenrichmentpolicytestsqspipesstatesconstructC752476A","roles":[{"Ref":"testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C"}]}}}}},"LogGroup-test-sqs-pipes-states-construct":{"id":"LogGroup-test-sqs-pipes-states-construct","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":[{"retention":9999,"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/LogGroup-test-sqs-pipes-states-construct/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/vendedlogs/pipes/constructs/sqspstp-state-machine-enrichmenttest-sqs-pipes-states-constructPipesLog-",{"Fn::Select":[2,{"Fn::Split":["/",{"Ref":"AWS::StackId"}]}]}]]}}}}}},"pipe-test-sqs-pipes-states-construct":{"id":"pipe-test-sqs-pipes-states-construct","path":"sqspstp-state-machine-enrichment/test-sqs-pipes-states-construct/pipe-test-sqs-pipes-states-construct","constructInfo":{"fqn":"aws-cdk-lib.aws_pipes.CfnPipe","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Pipes::Pipe","aws:cdk:cloudformation:props":{"enrichment":{"Ref":"temp3A4F7567"},"logConfiguration":{"cloudwatchLogsLogDestination":{"logGroupArn":{"Fn::GetAtt":["testsqspipesstatesconstructLogGrouptestsqspipesstatesconstructF827FE15","Arn"]}},"level":"TRACE"},"roleArn":{"Fn::GetAtt":["testsqspipesstatesconstructPipeRoletestsqspipesstatesconstruct2CC9A13C","Arn"]},"source":{"Fn::GetAtt":["testsqspipesstatesconstructqueueA7C76715","Arn"]},"sourceParameters":{},"target":{"Ref":"testsqspipesstatesconstructStateMachine29272AA9"},"targetParameters":{"stepFunctionStateMachineParameters":{"invocationType":"FIRE_AND_FORGET"}}}}}}},"Integ":{"id":"Integ","path":"sqspstp-state-machine-enrichment/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"sqspstp-state-machine-enrichment/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"sqspstp-state-machine-enrichment/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"sqspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-state-machine-enrichment/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"sqspstp-state-machine-enrichment/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"sqspstp-state-machine-enrichment/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/sqs-pipes-stepfunctions.test.ts b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/sqs-pipes-stepfunctions.test.ts index 74efecba3..e6eefde18 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/sqs-pipes-stepfunctions.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions/test/sqs-pipes-stepfunctions.test.ts @@ -395,7 +395,7 @@ test('test state machine enrichment', () => { test('Test lambda function enrichment', () => { const stack = new Stack(); const enrichmentFunction = new lambda.Function(stack, 'enrichment-function', { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', code: lambda.Code.fromInline(`exports.handler = async (event) => {return;}`) }); diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/README.adoc b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/README.adoc index c07be69b0..27f06fae5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/README.adoc +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/README.adoc @@ -50,7 +50,7 @@ import { WafwebaclToApiGatewayProps, WafwebaclToApiGateway } from "@aws-solution const apiGatewayToLambda = new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_22_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -107,7 +107,7 @@ import software.amazon.awsconstructs.services.wafwebaclapigateway.*; final ApiGatewayToLambda apiGatewayToLambda = new ApiGatewayToLambda(this, "ApiGatewayToLambdaPattern", new ApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_20_X) + .runtime(Runtime.NODEJS_22_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/integ.json index 43b378fe8..b73445582 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "wafapiexistingwaftomultiplegatewaysIntegDefaultTestDeployAssert419156F9" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/manifest.json index a80648b7a..f5f34a46a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e95740f45cacd642cb2c6f0fe1d31d2914768efe3b1ca89a562fae2c42ea27b4.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/68e08acfaf2e5385449257d706ca7b746acc73fbe20a4925ef2cb3972b593639.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -736,57 +736,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -795,7 +786,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -872,7 +866,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -1016,7 +1010,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -1045,7 +1042,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -1109,7 +1109,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -1143,7 +1146,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -1166,7 +1172,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -1196,6 +1205,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/tree.json index e6e39e75c..141e98382 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"wafapi-existing-waf-to-multiple-gateways":{"id":"wafapi-existing-waf-to-multiple-gateways","path":"wafapi-existing-waf-to-multiple-gateways","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"testOneFunction":{"id":"testOneFunction","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["testOneFunctionServiceRole3F9CD9E7","Arn"]},"runtime":"nodejs20.x"}}}}},"testOne-authorizerAuthFunction":{"id":"testOne-authorizerAuthFunction","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["testOneauthorizerAuthFunctionServiceRoleE1B4208E","Arn"]},"runtime":"nodejs20.x"}}},"wafapiexistingwaftomultiplegatewaystestOneauthorizer7F4D0710:Permissions":{"id":"wafapiexistingwaftomultiplegatewaystestOneauthorizer7F4D0710:Permissions","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/wafapiexistingwaftomultiplegatewaystestOneauthorizer7F4D0710:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneauthorizerAuthFunctionB12D8D93","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/authorizers/",{"Ref":"testOneauthorizerA10D8AB0"}]]}}}}}},"testOne-authorizer":{"id":"testOne-authorizer","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["testOneauthorizerAuthFunctionB12D8D93","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["testOneauthorizerAuthFunctionB12D8D93","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testOneauthorizerAuthFunctionB12D8D93","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"wafapiexistingwaftomultiplegatewaystestOneauthorizer7F4D0710","restApiId":{"Ref":"testOneApi71064556"},"type":"REQUEST"}}}}},"testOneApi":{"id":"testOneApi","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"testOneApi"}}},"Deployment":{"id":"Deployment","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testOneApi71064556"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"testOneApiDeploymentEF63BD8609fc6a0f86e232515b5cb988fd677939"},"restApiId":{"Ref":"testOneApi71064556"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testOneApi71064556","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testOneApi71064556"}}}},"ANY":{"id":"ANY","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}":{"id":"ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/ANY/ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/",{"Ref":"testOneApiDeploymentStageprod5B67F2DF"},"/*/*"]]}}}},"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}":{"id":"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/ANY/ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testOneauthorizerA10D8AB0"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testOneApiproxyC9BD4274"},"restApiId":{"Ref":"testOneApi71064556"}}}}}}}},"ANY":{"id":"ANY","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..":{"id":"ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/ANY/ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/",{"Ref":"testOneApiDeploymentStageprod5B67F2DF"},"/*/"]]}}}},"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..":{"id":"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/ANY/ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testOneauthorizerA10D8AB0"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testOneApi71064556","RootResourceId"]},"restApiId":{"Ref":"testOneApi71064556"}}}}}}}}}},"testTwoFunction":{"id":"testTwoFunction","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["testTwoFunctionServiceRoleF678C905","Arn"]},"runtime":"nodejs20.x"}}}}},"testTwo-authorizerAuthFunction":{"id":"testTwo-authorizerAuthFunction","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["testTwoauthorizerAuthFunctionServiceRole4C3292A3","Arn"]},"runtime":"nodejs20.x"}}},"wafapiexistingwaftomultiplegatewaystestTwoauthorizer9B2C525E:Permissions":{"id":"wafapiexistingwaftomultiplegatewaystestTwoauthorizer9B2C525E:Permissions","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/wafapiexistingwaftomultiplegatewaystestTwoauthorizer9B2C525E:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoauthorizerAuthFunction1DBBD707","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/authorizers/",{"Ref":"testTwoauthorizer627F159B"}]]}}}}}},"testTwo-authorizer":{"id":"testTwo-authorizer","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["testTwoauthorizerAuthFunction1DBBD707","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["testTwoauthorizerAuthFunction1DBBD707","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testTwoauthorizerAuthFunction1DBBD707","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"wafapiexistingwaftomultiplegatewaystestTwoauthorizer9B2C525E","restApiId":{"Ref":"testTwoApi17A08EF5"},"type":"REQUEST"}}}}},"testTwoApi":{"id":"testTwoApi","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"testTwoApi"}}},"Deployment":{"id":"Deployment","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testTwoApi17A08EF5"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"testTwoApiDeployment4EDBF4DF16b5f55503554b1a9ae378c4dff33c43"},"restApiId":{"Ref":"testTwoApi17A08EF5"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testTwoApi17A08EF5","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testTwoApi17A08EF5"}}}},"ANY":{"id":"ANY","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}":{"id":"ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/ANY/ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/",{"Ref":"testTwoApiDeploymentStageprod8DB1EDB4"},"/*/*"]]}}}},"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}":{"id":"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/ANY/ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testTwoauthorizer627F159B"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testTwoApiproxy2575DCE3"},"restApiId":{"Ref":"testTwoApi17A08EF5"}}}}}}}},"ANY":{"id":"ANY","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..":{"id":"ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/ANY/ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/",{"Ref":"testTwoApiDeploymentStageprod8DB1EDB4"},"/*/"]]}}}},"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..":{"id":"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/ANY/ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testTwoauthorizer627F159B"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testTwoApi17A08EF5","RootResourceId"]},"restApiId":{"Ref":"testTwoApi17A08EF5"}}}}}}}}}},"first-construct":{"id":"first-construct","path":"wafapi-existing-waf-to-multiple-gateways/first-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-wafwebacl-apigateway.WafwebaclToApiGateway","version":"2.86.0"},"children":{"first-construct-WebACL":{"id":"first-construct-WebACL","path":"wafapi-existing-waf-to-multiple-gateways/first-construct/first-construct-WebACL","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACL","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACL","aws:cdk:cloudformation:props":{"defaultAction":{"allow":{}},"rules":[{"name":"AWS-AWSManagedRulesBotControlRuleSet","priority":0,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesBotControlRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesBotControlRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesKnownBadInputsRuleSet","priority":1,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesKnownBadInputsRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesKnownBadInputsRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesCommonRuleSet","priority":2,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesCommonRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesCommonRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAnonymousIpList","priority":3,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAnonymousIpList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAnonymousIpList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAmazonIpReputationList","priority":4,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAmazonIpReputationList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAmazonIpReputationList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAdminProtectionRuleSet","priority":5,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAdminProtectionRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAdminProtectionRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesSQLiRuleSet","priority":6,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesSQLiRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesSQLiRuleSet","sampledRequestsEnabled":true}}],"scope":"REGIONAL","visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"webACL","sampledRequestsEnabled":true}}}}}},"first-construct-WebACLAssociation":{"id":"first-construct-WebACLAssociation","path":"wafapi-existing-waf-to-multiple-gateways/first-construct-WebACLAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACLAssociation","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACLAssociation","aws:cdk:cloudformation:props":{"resourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},"::/restapis/",{"Ref":"testOneApi71064556"},"/stages/",{"Ref":"testOneApiDeploymentStageprod5B67F2DF"}]]},"webAclArn":{"Fn::GetAtt":["firstconstructfirstconstructWebACLCB39A850","Arn"]}}}},"second-construct":{"id":"second-construct","path":"wafapi-existing-waf-to-multiple-gateways/second-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-wafwebacl-apigateway.WafwebaclToApiGateway","version":"2.86.0"}},"second-construct-WebACLAssociation":{"id":"second-construct-WebACLAssociation","path":"wafapi-existing-waf-to-multiple-gateways/second-construct-WebACLAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACLAssociation","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACLAssociation","aws:cdk:cloudformation:props":{"resourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},"::/restapis/",{"Ref":"testTwoApi17A08EF5"},"/stages/",{"Ref":"testTwoApiDeploymentStageprod8DB1EDB4"}]]},"webAclArn":{"Fn::GetAtt":["firstconstructfirstconstructWebACLCB39A850","Arn"]}}}},"Integ":{"id":"Integ","path":"wafapi-existing-waf-to-multiple-gateways/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-existing-waf-to-multiple-gateways/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-existing-waf-to-multiple-gateways/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"wafapi-existing-waf-to-multiple-gateways":{"id":"wafapi-existing-waf-to-multiple-gateways","path":"wafapi-existing-waf-to-multiple-gateways","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"testOneFunction":{"id":"testOneFunction","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["testOneFunctionServiceRole3F9CD9E7","Arn"]},"runtime":"nodejs22.x"}}}}},"testOne-authorizerAuthFunction":{"id":"testOne-authorizerAuthFunction","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["testOneauthorizerAuthFunctionServiceRoleE1B4208E","Arn"]},"runtime":"nodejs22.x"}}},"wafapiexistingwaftomultiplegatewaystestOneauthorizer7F4D0710:Permissions":{"id":"wafapiexistingwaftomultiplegatewaystestOneauthorizer7F4D0710:Permissions","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizerAuthFunction/wafapiexistingwaftomultiplegatewaystestOneauthorizer7F4D0710:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneauthorizerAuthFunctionB12D8D93","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/authorizers/",{"Ref":"testOneauthorizerA10D8AB0"}]]}}}}}},"testOne-authorizer":{"id":"testOne-authorizer","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOne-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["testOneauthorizerAuthFunctionB12D8D93","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["testOneauthorizerAuthFunctionB12D8D93","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testOneauthorizerAuthFunctionB12D8D93","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"wafapiexistingwaftomultiplegatewaystestOneauthorizer7F4D0710","restApiId":{"Ref":"testOneApi71064556"},"type":"REQUEST"}}}}},"testOneApi":{"id":"testOneApi","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"testOneApi"}}},"Deployment":{"id":"Deployment","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testOneApi71064556"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"testOneApiDeploymentEF63BD8609fc6a0f86e232515b5cb988fd677939"},"restApiId":{"Ref":"testOneApi71064556"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testOneApi71064556","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testOneApi71064556"}}}},"ANY":{"id":"ANY","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}":{"id":"ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/ANY/ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/",{"Ref":"testOneApiDeploymentStageprod5B67F2DF"},"/*/*"]]}}}},"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}":{"id":"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/ANY/ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testOneauthorizerA10D8AB0"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testOneApiproxyC9BD4274"},"restApiId":{"Ref":"testOneApi71064556"}}}}}}}},"ANY":{"id":"ANY","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..":{"id":"ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/ANY/ApiPermission.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/",{"Ref":"testOneApiDeploymentStageprod5B67F2DF"},"/*/"]]}}}},"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..":{"id":"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/ANY/ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestOneApiB9044B59.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testOneApi71064556"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testOneApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testOneauthorizerA10D8AB0"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testOneFunction5860F00A","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testOneApi71064556","RootResourceId"]},"restApiId":{"Ref":"testOneApi71064556"}}}}}}}}}},"testTwoFunction":{"id":"testTwoFunction","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["testTwoFunctionServiceRoleF678C905","Arn"]},"runtime":"nodejs22.x"}}}}},"testTwo-authorizerAuthFunction":{"id":"testTwo-authorizerAuthFunction","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["testTwoauthorizerAuthFunctionServiceRole4C3292A3","Arn"]},"runtime":"nodejs22.x"}}},"wafapiexistingwaftomultiplegatewaystestTwoauthorizer9B2C525E:Permissions":{"id":"wafapiexistingwaftomultiplegatewaystestTwoauthorizer9B2C525E:Permissions","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizerAuthFunction/wafapiexistingwaftomultiplegatewaystestTwoauthorizer9B2C525E:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoauthorizerAuthFunction1DBBD707","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/authorizers/",{"Ref":"testTwoauthorizer627F159B"}]]}}}}}},"testTwo-authorizer":{"id":"testTwo-authorizer","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwo-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["testTwoauthorizerAuthFunction1DBBD707","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["testTwoauthorizerAuthFunction1DBBD707","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testTwoauthorizerAuthFunction1DBBD707","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"wafapiexistingwaftomultiplegatewaystestTwoauthorizer9B2C525E","restApiId":{"Ref":"testTwoApi17A08EF5"},"type":"REQUEST"}}}}},"testTwoApi":{"id":"testTwoApi","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"testTwoApi"}}},"Deployment":{"id":"Deployment","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testTwoApi17A08EF5"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"testTwoApiDeployment4EDBF4DF16b5f55503554b1a9ae378c4dff33c43"},"restApiId":{"Ref":"testTwoApi17A08EF5"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testTwoApi17A08EF5","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testTwoApi17A08EF5"}}}},"ANY":{"id":"ANY","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}":{"id":"ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/ANY/ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/",{"Ref":"testTwoApiDeploymentStageprod8DB1EDB4"},"/*/*"]]}}}},"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}":{"id":"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/ANY/ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testTwoauthorizer627F159B"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testTwoApiproxy2575DCE3"},"restApiId":{"Ref":"testTwoApi17A08EF5"}}}}}}}},"ANY":{"id":"ANY","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..":{"id":"ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/ANY/ApiPermission.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/",{"Ref":"testTwoApiDeploymentStageprod8DB1EDB4"},"/*/"]]}}}},"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..":{"id":"ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/ANY/ApiPermission.Test.wafapiexistingwaftomultiplegatewaystestTwoApi3F5A8986.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testTwoApi17A08EF5"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"wafapi-existing-waf-to-multiple-gateways/testTwoApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testTwoauthorizer627F159B"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testTwoFunctionE0EEB0EF","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testTwoApi17A08EF5","RootResourceId"]},"restApiId":{"Ref":"testTwoApi17A08EF5"}}}}}}}}}},"first-construct":{"id":"first-construct","path":"wafapi-existing-waf-to-multiple-gateways/first-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-wafwebacl-apigateway.WafwebaclToApiGateway","version":"2.95.1"},"children":{"first-construct-WebACL":{"id":"first-construct-WebACL","path":"wafapi-existing-waf-to-multiple-gateways/first-construct/first-construct-WebACL","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACL","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACL","aws:cdk:cloudformation:props":{"defaultAction":{"allow":{}},"rules":[{"name":"AWS-AWSManagedRulesBotControlRuleSet","priority":0,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesBotControlRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesBotControlRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesKnownBadInputsRuleSet","priority":1,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesKnownBadInputsRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesKnownBadInputsRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesCommonRuleSet","priority":2,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesCommonRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesCommonRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAnonymousIpList","priority":3,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAnonymousIpList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAnonymousIpList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAmazonIpReputationList","priority":4,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAmazonIpReputationList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAmazonIpReputationList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAdminProtectionRuleSet","priority":5,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAdminProtectionRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAdminProtectionRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesSQLiRuleSet","priority":6,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesSQLiRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesSQLiRuleSet","sampledRequestsEnabled":true}}],"scope":"REGIONAL","visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"webACL","sampledRequestsEnabled":true}}}}}},"first-construct-WebACLAssociation":{"id":"first-construct-WebACLAssociation","path":"wafapi-existing-waf-to-multiple-gateways/first-construct-WebACLAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACLAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACLAssociation","aws:cdk:cloudformation:props":{"resourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},"::/restapis/",{"Ref":"testOneApi71064556"},"/stages/",{"Ref":"testOneApiDeploymentStageprod5B67F2DF"}]]},"webAclArn":{"Fn::GetAtt":["firstconstructfirstconstructWebACLCB39A850","Arn"]}}}},"second-construct":{"id":"second-construct","path":"wafapi-existing-waf-to-multiple-gateways/second-construct","constructInfo":{"fqn":"@aws-solutions-constructs/aws-wafwebacl-apigateway.WafwebaclToApiGateway","version":"2.95.1"}},"second-construct-WebACLAssociation":{"id":"second-construct-WebACLAssociation","path":"wafapi-existing-waf-to-multiple-gateways/second-construct-WebACLAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACLAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACLAssociation","aws:cdk:cloudformation:props":{"resourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},"::/restapis/",{"Ref":"testTwoApi17A08EF5"},"/stages/",{"Ref":"testTwoApiDeploymentStageprod8DB1EDB4"}]]},"webAclArn":{"Fn::GetAtt":["firstconstructfirstconstructWebACLCB39A850","Arn"]}}}},"Integ":{"id":"Integ","path":"wafapi-existing-waf-to-multiple-gateways/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-existing-waf-to-multiple-gateways/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-existing-waf-to-multiple-gateways/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-existing-waf-to-multiple-gateways/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapi-existing-waf-to-multiple-gateways.assets.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapi-existing-waf-to-multiple-gateways.assets.json index 342335ad5..28f9973fe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapi-existing-waf-to-multiple-gateways.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapi-existing-waf-to-multiple-gateways.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "testOneFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "e95740f45cacd642cb2c6f0fe1d31d2914768efe3b1ca89a562fae2c42ea27b4": { + "68e08acfaf2e5385449257d706ca7b746acc73fbe20a4925ef2cb3972b593639": { "displayName": "wafapi-existing-waf-to-multiple-gateways Template", "source": { "path": "wafapi-existing-waf-to-multiple-gateways.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-b13f2b97": { + "current_account-current_region-1a757d0d": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "e95740f45cacd642cb2c6f0fe1d31d2914768efe3b1ca89a562fae2c42ea27b4.json", + "objectKey": "68e08acfaf2e5385449257d706ca7b746acc73fbe20a4925ef2cb3972b593639.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapi-existing-waf-to-multiple-gateways.template.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapi-existing-waf-to-multiple-gateways.template.json index 829b22f2a..74503237d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapi-existing-waf-to-multiple-gateways.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapi-existing-waf-to-multiple-gateways.template.json @@ -38,7 +38,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -47,7 +47,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "testOneFunctionServiceRole3F9CD9E7" @@ -109,7 +109,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -118,7 +118,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "testOneauthorizerAuthFunctionServiceRoleE1B4208E" @@ -619,7 +619,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -628,7 +628,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "testTwoFunctionServiceRoleF678C905" @@ -690,7 +690,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -699,7 +699,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "testTwoauthorizerAuthFunctionServiceRole4C3292A3" diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapiexistingwaftomultiplegatewaysIntegDefaultTestDeployAssert419156F9.assets.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapiexistingwaftomultiplegatewaysIntegDefaultTestDeployAssert419156F9.assets.json index 2024768cc..0875f23af 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapiexistingwaftomultiplegatewaysIntegDefaultTestDeployAssert419156F9.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-existing-waf-to-multiple-gateways.js.snapshot/wafapiexistingwaftomultiplegatewaysIntegDefaultTestDeployAssert419156F9.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "wafapiexistingwaftomultiplegatewaysIntegDefaultTestDeployAssert419156F9 Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/integ.json index 596a4286b..4cf5c98c6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "wafapi-no-arguments/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "wafapinoargumentsIntegDefaultTestDeployAssertB0CD172A" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/manifest.json index cd17d7635..b1e1be199 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c0a97cd66325587b81dcaeaa196b8005ca3f5dd16b2cb9590c38a54c2c9e7f78.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/74af898469c85a976376c1f3636a89d2300ae0c81978f173063fbe261e9c1126.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -425,57 +425,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -484,7 +475,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -561,7 +555,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -705,7 +699,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -734,7 +731,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -798,7 +798,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -832,7 +835,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -855,7 +861,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -885,6 +894,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/tree.json index 18678d971..fc9333b74 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"wafapi-no-arguments":{"id":"wafapi-no-arguments","path":"wafapi-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"testFunction":{"id":"testFunction","path":"wafapi-no-arguments/testFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-no-arguments/testFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-no-arguments/testFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/testFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-no-arguments/testFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-no-arguments/testFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-no-arguments/testFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/testFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["testFunctionServiceRoleFEC29B6F","Arn"]},"runtime":"nodejs20.x"}}}}},"test-authorizerAuthFunction":{"id":"test-authorizerAuthFunction","path":"wafapi-no-arguments/test-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-no-arguments/test-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-no-arguments/test-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/test-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-no-arguments/test-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-no-arguments/test-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-no-arguments/test-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/test-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["testauthorizerAuthFunctionServiceRole6F05059E","Arn"]},"runtime":"nodejs20.x"}}},"wafapinoargumentstestauthorizerB886165D:Permissions":{"id":"wafapinoargumentstestauthorizerB886165D:Permissions","path":"wafapi-no-arguments/test-authorizerAuthFunction/wafapinoargumentstestauthorizerB886165D:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/authorizers/",{"Ref":"testauthorizer92817493"}]]}}}}}},"test-authorizer":{"id":"test-authorizer","path":"wafapi-no-arguments/test-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/test-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"wafapinoargumentstestauthorizerB886165D","restApiId":{"Ref":"testApiD6ECAB50"},"type":"REQUEST"}}}}},"testApi":{"id":"testApi","path":"wafapi-no-arguments/testApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"testApi"}}},"Deployment":{"id":"Deployment","path":"wafapi-no-arguments/testApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testApiD6ECAB50"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"wafapi-no-arguments/testApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"testApiDeployment3727A0B945269ece8c1cb1d7d33b0e2942ca4768"},"restApiId":{"Ref":"testApiD6ECAB50"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"wafapi-no-arguments/testApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"wafapi-no-arguments/testApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"wafapi-no-arguments/testApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testApiD6ECAB50","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testApiD6ECAB50"}}}},"ANY":{"id":"ANY","path":"wafapi-no-arguments/testApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapinoargumentstestApi4B407520.ANY..{proxy+}":{"id":"ApiPermission.wafapinoargumentstestApi4B407520.ANY..{proxy+}","path":"wafapi-no-arguments/testApi/Default/{proxy+}/ANY/ApiPermission.wafapinoargumentstestApi4B407520.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/",{"Ref":"testApiDeploymentStageprodCE051BE8"},"/*/*"]]}}}},"ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..{proxy+}":{"id":"ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..{proxy+}","path":"wafapi-no-arguments/testApi/Default/{proxy+}/ANY/ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testauthorizer92817493"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testApiproxyA0E5503A"},"restApiId":{"Ref":"testApiD6ECAB50"}}}}}}}},"ANY":{"id":"ANY","path":"wafapi-no-arguments/testApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapinoargumentstestApi4B407520.ANY..":{"id":"ApiPermission.wafapinoargumentstestApi4B407520.ANY..","path":"wafapi-no-arguments/testApi/Default/ANY/ApiPermission.wafapinoargumentstestApi4B407520.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/",{"Ref":"testApiDeploymentStageprodCE051BE8"},"/*/"]]}}}},"ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..":{"id":"ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..","path":"wafapi-no-arguments/testApi/Default/ANY/ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testauthorizer92817493"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testApiD6ECAB50","RootResourceId"]},"restApiId":{"Ref":"testApiD6ECAB50"}}}}}}}}}},"test-wafwebacl-apigateway-lambda":{"id":"test-wafwebacl-apigateway-lambda","path":"wafapi-no-arguments/test-wafwebacl-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-wafwebacl-apigateway.WafwebaclToApiGateway","version":"2.86.0"},"children":{"test-wafwebacl-apigateway-lambda-WebACL":{"id":"test-wafwebacl-apigateway-lambda-WebACL","path":"wafapi-no-arguments/test-wafwebacl-apigateway-lambda/test-wafwebacl-apigateway-lambda-WebACL","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACL","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACL","aws:cdk:cloudformation:props":{"defaultAction":{"allow":{}},"rules":[{"name":"AWS-AWSManagedRulesBotControlRuleSet","priority":0,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesBotControlRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesBotControlRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesKnownBadInputsRuleSet","priority":1,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesKnownBadInputsRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesKnownBadInputsRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesCommonRuleSet","priority":2,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesCommonRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesCommonRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAnonymousIpList","priority":3,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAnonymousIpList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAnonymousIpList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAmazonIpReputationList","priority":4,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAmazonIpReputationList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAmazonIpReputationList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAdminProtectionRuleSet","priority":5,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAdminProtectionRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAdminProtectionRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesSQLiRuleSet","priority":6,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesSQLiRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesSQLiRuleSet","sampledRequestsEnabled":true}}],"scope":"REGIONAL","visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"webACL","sampledRequestsEnabled":true}}}}}},"test-wafwebacl-apigateway-lambda-WebACLAssociation":{"id":"test-wafwebacl-apigateway-lambda-WebACLAssociation","path":"wafapi-no-arguments/test-wafwebacl-apigateway-lambda-WebACLAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACLAssociation","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACLAssociation","aws:cdk:cloudformation:props":{"resourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},"::/restapis/",{"Ref":"testApiD6ECAB50"},"/stages/",{"Ref":"testApiDeploymentStageprodCE051BE8"}]]},"webAclArn":{"Fn::GetAtt":["testwafwebaclapigatewaylambdatestwafwebaclapigatewaylambdaWebACL9DE6948C","Arn"]}}}},"Integ":{"id":"Integ","path":"wafapi-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wafapi-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wafapi-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wafapi-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"wafapi-no-arguments":{"id":"wafapi-no-arguments","path":"wafapi-no-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"testFunction":{"id":"testFunction","path":"wafapi-no-arguments/testFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-no-arguments/testFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-no-arguments/testFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/testFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-no-arguments/testFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-no-arguments/testFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-no-arguments/testFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/testFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["testFunctionServiceRoleFEC29B6F","Arn"]},"runtime":"nodejs22.x"}}}}},"test-authorizerAuthFunction":{"id":"test-authorizerAuthFunction","path":"wafapi-no-arguments/test-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-no-arguments/test-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-no-arguments/test-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/test-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-no-arguments/test-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-no-arguments/test-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-no-arguments/test-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/test-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["testauthorizerAuthFunctionServiceRole6F05059E","Arn"]},"runtime":"nodejs22.x"}}},"wafapinoargumentstestauthorizerB886165D:Permissions":{"id":"wafapinoargumentstestauthorizerB886165D:Permissions","path":"wafapi-no-arguments/test-authorizerAuthFunction/wafapinoargumentstestauthorizerB886165D:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/authorizers/",{"Ref":"testauthorizer92817493"}]]}}}}}},"test-authorizer":{"id":"test-authorizer","path":"wafapi-no-arguments/test-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/test-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"wafapinoargumentstestauthorizerB886165D","restApiId":{"Ref":"testApiD6ECAB50"},"type":"REQUEST"}}}}},"testApi":{"id":"testApi","path":"wafapi-no-arguments/testApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"testApi"}}},"Deployment":{"id":"Deployment","path":"wafapi-no-arguments/testApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testApiD6ECAB50"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"wafapi-no-arguments/testApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"testApiDeployment3727A0B945269ece8c1cb1d7d33b0e2942ca4768"},"restApiId":{"Ref":"testApiD6ECAB50"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"wafapi-no-arguments/testApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"wafapi-no-arguments/testApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"wafapi-no-arguments/testApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testApiD6ECAB50","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testApiD6ECAB50"}}}},"ANY":{"id":"ANY","path":"wafapi-no-arguments/testApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapinoargumentstestApi4B407520.ANY..{proxy+}":{"id":"ApiPermission.wafapinoargumentstestApi4B407520.ANY..{proxy+}","path":"wafapi-no-arguments/testApi/Default/{proxy+}/ANY/ApiPermission.wafapinoargumentstestApi4B407520.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/",{"Ref":"testApiDeploymentStageprodCE051BE8"},"/*/*"]]}}}},"ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..{proxy+}":{"id":"ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..{proxy+}","path":"wafapi-no-arguments/testApi/Default/{proxy+}/ANY/ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testauthorizer92817493"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testApiproxyA0E5503A"},"restApiId":{"Ref":"testApiD6ECAB50"}}}}}}}},"ANY":{"id":"ANY","path":"wafapi-no-arguments/testApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapinoargumentstestApi4B407520.ANY..":{"id":"ApiPermission.wafapinoargumentstestApi4B407520.ANY..","path":"wafapi-no-arguments/testApi/Default/ANY/ApiPermission.wafapinoargumentstestApi4B407520.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/",{"Ref":"testApiDeploymentStageprodCE051BE8"},"/*/"]]}}}},"ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..":{"id":"ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..","path":"wafapi-no-arguments/testApi/Default/ANY/ApiPermission.Test.wafapinoargumentstestApi4B407520.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"wafapi-no-arguments/testApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testauthorizer92817493"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testApiD6ECAB50","RootResourceId"]},"restApiId":{"Ref":"testApiD6ECAB50"}}}}}}}}}},"test-wafwebacl-apigateway-lambda":{"id":"test-wafwebacl-apigateway-lambda","path":"wafapi-no-arguments/test-wafwebacl-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-wafwebacl-apigateway.WafwebaclToApiGateway","version":"2.95.1"},"children":{"test-wafwebacl-apigateway-lambda-WebACL":{"id":"test-wafwebacl-apigateway-lambda-WebACL","path":"wafapi-no-arguments/test-wafwebacl-apigateway-lambda/test-wafwebacl-apigateway-lambda-WebACL","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACL","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACL","aws:cdk:cloudformation:props":{"defaultAction":{"allow":{}},"rules":[{"name":"AWS-AWSManagedRulesBotControlRuleSet","priority":0,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesBotControlRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesBotControlRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesKnownBadInputsRuleSet","priority":1,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesKnownBadInputsRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesKnownBadInputsRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesCommonRuleSet","priority":2,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesCommonRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesCommonRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAnonymousIpList","priority":3,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAnonymousIpList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAnonymousIpList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAmazonIpReputationList","priority":4,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAmazonIpReputationList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAmazonIpReputationList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAdminProtectionRuleSet","priority":5,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAdminProtectionRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAdminProtectionRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesSQLiRuleSet","priority":6,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesSQLiRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesSQLiRuleSet","sampledRequestsEnabled":true}}],"scope":"REGIONAL","visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"webACL","sampledRequestsEnabled":true}}}}}},"test-wafwebacl-apigateway-lambda-WebACLAssociation":{"id":"test-wafwebacl-apigateway-lambda-WebACLAssociation","path":"wafapi-no-arguments/test-wafwebacl-apigateway-lambda-WebACLAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACLAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACLAssociation","aws:cdk:cloudformation:props":{"resourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},"::/restapis/",{"Ref":"testApiD6ECAB50"},"/stages/",{"Ref":"testApiDeploymentStageprodCE051BE8"}]]},"webAclArn":{"Fn::GetAtt":["testwafwebaclapigatewaylambdatestwafwebaclapigatewaylambdaWebACL9DE6948C","Arn"]}}}},"Integ":{"id":"Integ","path":"wafapi-no-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wafapi-no-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wafapi-no-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wafapi-no-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-no-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-no-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-no-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-no-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapi-no-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapi-no-arguments.assets.json index 3f2d5ee18..06b55ebc7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapi-no-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapi-no-arguments.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "testFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "c0a97cd66325587b81dcaeaa196b8005ca3f5dd16b2cb9590c38a54c2c9e7f78": { + "74af898469c85a976376c1f3636a89d2300ae0c81978f173063fbe261e9c1126": { "displayName": "wafapi-no-arguments Template", "source": { "path": "wafapi-no-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-9f9be2df": { + "current_account-current_region-4824f767": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c0a97cd66325587b81dcaeaa196b8005ca3f5dd16b2cb9590c38a54c2c9e7f78.json", + "objectKey": "74af898469c85a976376c1f3636a89d2300ae0c81978f173063fbe261e9c1126.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapi-no-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapi-no-arguments.template.json index ec3ef7854..6b6d3d524 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapi-no-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapi-no-arguments.template.json @@ -38,7 +38,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -47,7 +47,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "testFunctionServiceRoleFEC29B6F" @@ -109,7 +109,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -118,7 +118,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "testauthorizerAuthFunctionServiceRole6F05059E" diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapinoargumentsIntegDefaultTestDeployAssertB0CD172A.assets.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapinoargumentsIntegDefaultTestDeployAssertB0CD172A.assets.json index f7a737ea1..6fa0794a6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapinoargumentsIntegDefaultTestDeployAssertB0CD172A.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-no-arguments.js.snapshot/wafapinoargumentsIntegDefaultTestDeployAssertB0CD172A.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "wafapinoargumentsIntegDefaultTestDeployAssertB0CD172A Template", diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js new file mode 100644 index 000000000..7cd4d863f --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e/index.js @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +console.log('Loading function'); + +exports.handler = async (event, context) => { + console.log('Received event:', JSON.stringify(event, null, 2)); +    return { +      statusCode: 200, +      headers: { 'Content-Type': 'text/plain' }, +      body: `Hello from AWS Solutions Constructs! You've hit ${event.path}\n` +    }; +}; \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/integ.json index 34fdad15e..a0304cfc5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "wafapi-partial-arguments/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "wafapipartialargumentsIntegDefaultTestDeployAssert6A422C66" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/manifest.json index 61e7ca3c2..e967a9e5b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b7079a777f1eaa65ed3bae03c26562f0356eea7cb19b7ed5a1cc41dae494226a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/765c05f61eeaf6cd540bb63b0296c85bc68db6b73aa7f31d9228a24baf98026b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -425,57 +425,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -484,7 +475,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -561,7 +555,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -705,7 +699,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -734,7 +731,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -798,7 +798,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -832,7 +835,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -855,7 +861,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -885,6 +894,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/tree.json index 1b49be93f..b87c6c3b4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"wafapi-partial-arguments":{"id":"wafapi-partial-arguments","path":"wafapi-partial-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"testFunction":{"id":"testFunction","path":"wafapi-partial-arguments/testFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-partial-arguments/testFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-partial-arguments/testFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-partial-arguments/testFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-partial-arguments/testFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-partial-arguments/testFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["testFunctionServiceRoleFEC29B6F","Arn"]},"runtime":"nodejs20.x"}}}}},"test-authorizerAuthFunction":{"id":"test-authorizerAuthFunction","path":"wafapi-partial-arguments/test-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-partial-arguments/test-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-partial-arguments/test-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/test-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-partial-arguments/test-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-partial-arguments/test-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-partial-arguments/test-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/test-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip"},"handler":".handler","role":{"Fn::GetAtt":["testauthorizerAuthFunctionServiceRole6F05059E","Arn"]},"runtime":"nodejs20.x"}}},"wafapipartialargumentstestauthorizerDC0C2973:Permissions":{"id":"wafapipartialargumentstestauthorizerDC0C2973:Permissions","path":"wafapi-partial-arguments/test-authorizerAuthFunction/wafapipartialargumentstestauthorizerDC0C2973:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/authorizers/",{"Ref":"testauthorizer92817493"}]]}}}}}},"test-authorizer":{"id":"test-authorizer","path":"wafapi-partial-arguments/test-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/test-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"wafapipartialargumentstestauthorizerDC0C2973","restApiId":{"Ref":"testApiD6ECAB50"},"type":"REQUEST"}}}}},"testApi":{"id":"testApi","path":"wafapi-partial-arguments/testApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.206.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"testApi"}}},"Deployment":{"id":"Deployment","path":"wafapi-partial-arguments/testApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.206.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testApiD6ECAB50"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"wafapi-partial-arguments/testApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.206.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"testApiDeployment3727A0B95388984bee9824c9f21a4879eea24bbc"},"restApiId":{"Ref":"testApiD6ECAB50"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"wafapi-partial-arguments/testApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.206.0"}},"Default":{"id":"Default","path":"wafapi-partial-arguments/testApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.206.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"wafapi-partial-arguments/testApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.206.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testApiD6ECAB50","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testApiD6ECAB50"}}}},"ANY":{"id":"ANY","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}":{"id":"ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/ANY/ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/",{"Ref":"testApiDeploymentStageprodCE051BE8"},"/*/*"]]}}}},"ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}":{"id":"ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/ANY/ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testauthorizer92817493"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testApiproxyA0E5503A"},"restApiId":{"Ref":"testApiD6ECAB50"}}}}}}}},"ANY":{"id":"ANY","path":"wafapi-partial-arguments/testApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.206.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..":{"id":"ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..","path":"wafapi-partial-arguments/testApi/Default/ANY/ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/",{"Ref":"testApiDeploymentStageprodCE051BE8"},"/*/"]]}}}},"ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..":{"id":"ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..","path":"wafapi-partial-arguments/testApi/Default/ANY/ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testauthorizer92817493"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testApiD6ECAB50","RootResourceId"]},"restApiId":{"Ref":"testApiD6ECAB50"}}}}}}}}}},"test-wafwebacl-apigateway-lambda":{"id":"test-wafwebacl-apigateway-lambda","path":"wafapi-partial-arguments/test-wafwebacl-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-wafwebacl-apigateway.WafwebaclToApiGateway","version":"2.86.0"},"children":{"test-wafwebacl-apigateway-lambda-WebACL":{"id":"test-wafwebacl-apigateway-lambda-WebACL","path":"wafapi-partial-arguments/test-wafwebacl-apigateway-lambda/test-wafwebacl-apigateway-lambda-WebACL","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACL","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACL","aws:cdk:cloudformation:props":{"defaultAction":{"allow":{}},"name":"test-name-apigateway","rules":[{"name":"AWS-AWSManagedRulesBotControlRuleSet","priority":0,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesBotControlRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesBotControlRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesKnownBadInputsRuleSet","priority":1,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesKnownBadInputsRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesKnownBadInputsRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesCommonRuleSet","priority":2,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesCommonRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesCommonRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAnonymousIpList","priority":3,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAnonymousIpList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAnonymousIpList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAmazonIpReputationList","priority":4,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAmazonIpReputationList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAmazonIpReputationList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAdminProtectionRuleSet","priority":5,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAdminProtectionRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAdminProtectionRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesSQLiRuleSet","priority":6,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesSQLiRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesSQLiRuleSet","sampledRequestsEnabled":true}}],"scope":"REGIONAL","visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"webACL","sampledRequestsEnabled":true}}}}}},"test-wafwebacl-apigateway-lambda-WebACLAssociation":{"id":"test-wafwebacl-apigateway-lambda-WebACLAssociation","path":"wafapi-partial-arguments/test-wafwebacl-apigateway-lambda-WebACLAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACLAssociation","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACLAssociation","aws:cdk:cloudformation:props":{"resourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},"::/restapis/",{"Ref":"testApiD6ECAB50"},"/stages/",{"Ref":"testApiDeploymentStageprodCE051BE8"}]]},"webAclArn":{"Fn::GetAtt":["testwafwebaclapigatewaylambdatestwafwebaclapigatewaylambdaWebACL9DE6948C","Arn"]}}}},"Integ":{"id":"Integ","path":"wafapi-partial-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wafapi-partial-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wafapi-partial-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wafapi-partial-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-partial-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-partial-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-partial-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-partial-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"wafapi-partial-arguments":{"id":"wafapi-partial-arguments","path":"wafapi-partial-arguments","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"testFunction":{"id":"testFunction","path":"wafapi-partial-arguments/testFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-partial-arguments/testFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-partial-arguments/testFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-partial-arguments/testFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-partial-arguments/testFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-partial-arguments/testFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["testFunctionServiceRoleFEC29B6F","Arn"]},"runtime":"nodejs22.x"}}}}},"test-authorizerAuthFunction":{"id":"test-authorizerAuthFunction","path":"wafapi-partial-arguments/test-authorizerAuthFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","runtime":"*","handler":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"wafapi-partial-arguments/test-authorizerAuthFunction/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"wafapi-partial-arguments/test-authorizerAuthFunction/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/test-authorizerAuthFunction/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"wafapi-partial-arguments/test-authorizerAuthFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"wafapi-partial-arguments/test-authorizerAuthFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"wafapi-partial-arguments/test-authorizerAuthFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/test-authorizerAuthFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip"},"handler":".handler","role":{"Fn::GetAtt":["testauthorizerAuthFunctionServiceRole6F05059E","Arn"]},"runtime":"nodejs22.x"}}},"wafapipartialargumentstestauthorizerDC0C2973:Permissions":{"id":"wafapipartialargumentstestauthorizerDC0C2973:Permissions","path":"wafapi-partial-arguments/test-authorizerAuthFunction/wafapipartialargumentstestauthorizerDC0C2973:Permissions","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/authorizers/",{"Ref":"testauthorizer92817493"}]]}}}}}},"test-authorizer":{"id":"test-authorizer","path":"wafapi-partial-arguments/test-authorizer","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.RequestAuthorizer","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/test-authorizer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnAuthorizer","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Authorizer","aws:cdk:cloudformation:props":{"authorizerResultTtlInSeconds":300,"authorizerUri":{"Fn::Join":["",["arn:",{"Fn::Select":[1,{"Fn::Split":[":",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]}]}]},":apigateway:",{"Fn::Select":[3,{"Fn::Split":[":",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]}]}]},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testauthorizerAuthFunctionCE2F3743","Arn"]},"/invocations"]]},"identitySource":"method.request.header.Authorization","name":"wafapipartialargumentstestauthorizerDC0C2973","restApiId":{"Ref":"testApiD6ECAB50"},"type":"REQUEST"}}}}},"testApi":{"id":"testApi","path":"wafapi-partial-arguments/testApi","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.LambdaRestApi","version":"2.223.0","metadata":[{"defaultIntegration":"*","handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}},{"handler":"*","defaultMethodOptions":{"authorizationType":"*","authorizer":"*"}}]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnRestApi","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::RestApi","aws:cdk:cloudformation:props":{"name":"testApi"}}},"Deployment":{"id":"Deployment","path":"wafapi-partial-arguments/testApi/Deployment","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Deployment","version":"2.223.0","metadata":[{"description":"*","api":"*","retainDeployments":"*"},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]},{"addToLogicalId":[{}]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Deployment/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnDeployment","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Deployment","aws:cdk:cloudformation:props":{"description":"Automatically created by the RestApi construct","restApiId":{"Ref":"testApiD6ECAB50"}}}}}},"DeploymentStage.prod":{"id":"DeploymentStage.prod","path":"wafapi-partial-arguments/testApi/DeploymentStage.prod","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Stage","version":"2.223.0","metadata":[{"deployment":"*"}]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/DeploymentStage.prod/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnStage","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Stage","aws:cdk:cloudformation:props":{"deploymentId":{"Ref":"testApiDeployment3727A0B95388984bee9824c9f21a4879eea24bbc"},"restApiId":{"Ref":"testApiD6ECAB50"},"stageName":"prod"}}}}},"Endpoint":{"id":"Endpoint","path":"wafapi-partial-arguments/testApi/Endpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.223.0"}},"Default":{"id":"Default","path":"wafapi-partial-arguments/testApi/Default","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ResourceBase","version":"2.223.0","metadata":["*"]},"children":{"{proxy+}":{"id":"{proxy+}","path":"wafapi-partial-arguments/testApi/Default/{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.ProxyResource","version":"2.223.0","metadata":[{"parent":"*","defaultIntegration":"*","defaultMethodOptions":"*"},{"parent":"*"},{"addMethod":["*"]}]},"children":{"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnResource","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Resource","aws:cdk:cloudformation:props":{"parentId":{"Fn::GetAtt":["testApiD6ECAB50","RootResourceId"]},"pathPart":"{proxy+}","restApiId":{"Ref":"testApiD6ECAB50"}}}},"ANY":{"id":"ANY","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}":{"id":"ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/ANY/ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/",{"Ref":"testApiDeploymentStageprodCE051BE8"},"/*/*"]]}}}},"ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}":{"id":"ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/ANY/ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..{proxy+}","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/test-invoke-stage/*/*"]]}}}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Default/{proxy+}/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testauthorizer92817493"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Ref":"testApiproxyA0E5503A"},"restApiId":{"Ref":"testApiD6ECAB50"}}}}}}}},"ANY":{"id":"ANY","path":"wafapi-partial-arguments/testApi/Default/ANY","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.Method","version":"2.223.0","metadata":[{"resource":"*","httpMethod":"*","integration":"*","options":"*"}]},"children":{"ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..":{"id":"ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..","path":"wafapi-partial-arguments/testApi/Default/ANY/ApiPermission.wafapipartialargumentstestApi4A48F3FB.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/",{"Ref":"testApiDeploymentStageprodCE051BE8"},"/*/"]]}}}},"ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..":{"id":"ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..","path":"wafapi-partial-arguments/testApi/Default/ANY/ApiPermission.Test.wafapipartialargumentstestApi4A48F3FB.ANY..","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnPermission","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Permission","aws:cdk:cloudformation:props":{"action":"lambda:InvokeFunction","functionName":{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"principal":"apigateway.amazonaws.com","sourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":execute-api:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":",{"Ref":"testApiD6ECAB50"},"/test-invoke-stage/*/"]]}}}},"Resource":{"id":"Resource","path":"wafapi-partial-arguments/testApi/Default/ANY/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_apigateway.CfnMethod","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ApiGateway::Method","aws:cdk:cloudformation:props":{"authorizationType":"CUSTOM","authorizerId":{"Ref":"testauthorizer92817493"},"httpMethod":"ANY","integration":{"type":"AWS_PROXY","uri":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},":lambda:path/2015-03-31/functions/",{"Fn::GetAtt":["testFunction483F4CBE","Arn"]},"/invocations"]]},"integrationHttpMethod":"POST"},"resourceId":{"Fn::GetAtt":["testApiD6ECAB50","RootResourceId"]},"restApiId":{"Ref":"testApiD6ECAB50"}}}}}}}}}},"test-wafwebacl-apigateway-lambda":{"id":"test-wafwebacl-apigateway-lambda","path":"wafapi-partial-arguments/test-wafwebacl-apigateway-lambda","constructInfo":{"fqn":"@aws-solutions-constructs/aws-wafwebacl-apigateway.WafwebaclToApiGateway","version":"2.95.1"},"children":{"test-wafwebacl-apigateway-lambda-WebACL":{"id":"test-wafwebacl-apigateway-lambda-WebACL","path":"wafapi-partial-arguments/test-wafwebacl-apigateway-lambda/test-wafwebacl-apigateway-lambda-WebACL","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACL","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACL","aws:cdk:cloudformation:props":{"defaultAction":{"allow":{}},"name":"test-name-apigateway","rules":[{"name":"AWS-AWSManagedRulesBotControlRuleSet","priority":0,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesBotControlRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesBotControlRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesKnownBadInputsRuleSet","priority":1,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesKnownBadInputsRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesKnownBadInputsRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesCommonRuleSet","priority":2,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesCommonRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesCommonRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAnonymousIpList","priority":3,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAnonymousIpList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAnonymousIpList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAmazonIpReputationList","priority":4,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAmazonIpReputationList","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAmazonIpReputationList","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesAdminProtectionRuleSet","priority":5,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesAdminProtectionRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesAdminProtectionRuleSet","sampledRequestsEnabled":true}},{"name":"AWS-AWSManagedRulesSQLiRuleSet","priority":6,"overrideAction":{"none":{}},"statement":{"managedRuleGroupStatement":{"name":"AWSManagedRulesSQLiRuleSet","vendorName":"AWS"}},"visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"AWSManagedRulesSQLiRuleSet","sampledRequestsEnabled":true}}],"scope":"REGIONAL","visibilityConfig":{"cloudWatchMetricsEnabled":true,"metricName":"webACL","sampledRequestsEnabled":true}}}}}},"test-wafwebacl-apigateway-lambda-WebACLAssociation":{"id":"test-wafwebacl-apigateway-lambda-WebACLAssociation","path":"wafapi-partial-arguments/test-wafwebacl-apigateway-lambda-WebACLAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_wafv2.CfnWebACLAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::WAFv2::WebACLAssociation","aws:cdk:cloudformation:props":{"resourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":apigateway:",{"Ref":"AWS::Region"},"::/restapis/",{"Ref":"testApiD6ECAB50"},"/stages/",{"Ref":"testApiDeploymentStageprodCE051BE8"}]]},"webAclArn":{"Fn::GetAtt":["testwafwebaclapigatewaylambdatestwafwebaclapigatewaylambdaWebACL9DE6948C","Arn"]}}}},"Integ":{"id":"Integ","path":"wafapi-partial-arguments/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"wafapi-partial-arguments/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"wafapi-partial-arguments/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"wafapi-partial-arguments/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-partial-arguments/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-partial-arguments/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"wafapi-partial-arguments/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"wafapi-partial-arguments/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapi-partial-arguments.assets.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapi-partial-arguments.assets.json index 9d5ce6f97..e0129f147 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapi-partial-arguments.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapi-partial-arguments.assets.json @@ -1,30 +1,30 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { - "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f": { + "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e": { "displayName": "testFunction/Code", "source": { - "path": "asset.3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f", + "path": "asset.0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e", "packaging": "zip" }, "destinations": { - "current_account-current_region-7f03e0f4": { + "current_account-current_region-1a238803": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip", + "objectKey": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "b7079a777f1eaa65ed3bae03c26562f0356eea7cb19b7ed5a1cc41dae494226a": { + "765c05f61eeaf6cd540bb63b0296c85bc68db6b73aa7f31d9228a24baf98026b": { "displayName": "wafapi-partial-arguments Template", "source": { "path": "wafapi-partial-arguments.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-4a223949": { + "current_account-current_region-0aac60d1": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7079a777f1eaa65ed3bae03c26562f0356eea7cb19b7ed5a1cc41dae494226a.json", + "objectKey": "765c05f61eeaf6cd540bb63b0296c85bc68db6b73aa7f31d9228a24baf98026b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapi-partial-arguments.template.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapi-partial-arguments.template.json index bfffe9175..0e262df35 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapi-partial-arguments.template.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapi-partial-arguments.template.json @@ -38,7 +38,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -47,7 +47,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "testFunctionServiceRoleFEC29B6F" @@ -109,7 +109,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3a18fd3de4803f72260a058823accffd4f8d69986c6862a23cd86265f6cafa0f.zip" + "S3Key": "0772ffe05bd3b2e012dc5086ab3b6dd03c8a0268fc1c81326f5e72b0a4c6b51e.zip" }, "Handler": ".handler", "Role": { @@ -118,7 +118,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x" + "Runtime": "nodejs22.x" }, "DependsOn": [ "testauthorizerAuthFunctionServiceRole6F05059E" diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapipartialargumentsIntegDefaultTestDeployAssert6A422C66.assets.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapipartialargumentsIntegDefaultTestDeployAssert6A422C66.assets.json index d28a98b95..552e3b95c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapipartialargumentsIntegDefaultTestDeployAssert6A422C66.assets.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafapi-partial-arguments.js.snapshot/wafapipartialargumentsIntegDefaultTestDeployAssert6A422C66.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "wafapipartialargumentsIntegDefaultTestDeployAssert6A422C66 Template", diff --git a/source/patterns/@aws-solutions-constructs/core/index.ts b/source/patterns/@aws-solutions-constructs/core/index.ts index 95c37297b..390c4a77d 100644 --- a/source/patterns/@aws-solutions-constructs/core/index.ts +++ b/source/patterns/@aws-solutions-constructs/core/index.ts @@ -76,4 +76,5 @@ export * from './lib/websocket-api-helper'; export * from './lib/pipes-defaults'; export * from './lib/pipes-helper'; export * from './lib/bedrock-inference-helper'; +export * from './lib/translate-helper'; export * from './lib/constructs-feature-flags'; diff --git a/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-helper.ts index 33a00b902..188bd74c6 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-helper.ts @@ -87,6 +87,7 @@ export function buildElasticSearch(scope: Construct, props: BuildElasticSearchPr // default behavior, but Sonarqube cannot follow the program flow to confirm this. // This is confirmed by the 'Check that TLS 1.2 is the default' test in aws-lambda-elasticsearch const esDomain = new elasticsearch.CfnDomain(scope, `ElasticsearchDomain`, finalCfnDomainProps); // NOSONAR + esDomain.node.addDependency(cognitoKibanaConfigureRole); addCfnSuppressRules(esDomain, [ { diff --git a/source/patterns/@aws-solutions-constructs/core/lib/opensearch-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/opensearch-helper.ts index b5b7ed23c..b38664e0e 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/opensearch-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/opensearch-helper.ts @@ -86,6 +86,7 @@ export function buildOpenSearch(scope: Construct, props: BuildOpenSearchProps): // default behavior, but Sonarqube cannot follow the program flow to confirm this. // This is confirmed by the 'Check that TLS 1.2 is the default' test in aws-lambda-opensearch const opensearchDomain = new opensearch.CfnDomain(scope, `OpenSearchDomain`, finalCfnDomainProps); // NOSONAR + opensearchDomain.node.addDependency(cognitoDashboardConfigureRole); addCfnSuppressRules(opensearchDomain, [ { diff --git a/source/patterns/@aws-solutions-constructs/core/lib/translate-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/translate-helper.ts new file mode 100644 index 000000000..49eb4ec3b --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/core/lib/translate-helper.ts @@ -0,0 +1,183 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import * as s3 from 'aws-cdk-lib/aws-s3'; +import { Construct } from 'constructs'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import { CheckS3Props, buildS3Bucket } from './s3-bucket-helper'; +import { overrideProps } from './utils'; + +export interface TranslateProps { + readonly asyncJobs?: boolean; + readonly existingSourceBucketObj?: s3.IBucket; + readonly sourceBucketProps?: s3.BucketProps; + readonly existingDestinationBucketObj?: s3.IBucket; + readonly destinationBucketProps?: s3.BucketProps; + readonly useSameBucket?: boolean; + readonly sourceLoggingBucketProps?: s3.BucketProps; + readonly destinationLoggingBucketProps?: s3.BucketProps; + readonly logSourceS3AccessLogs?: boolean; + readonly logDestinationS3AccessLogs?: boolean; + readonly sourceBucketEnvironmentVariableName?: string; + readonly destinationBucketEnvironmentVariableName?: string; + readonly dataAccessRoleArnEnvironmentVariableName?: string; +} + +export interface TranslateConfiguration { + readonly translateRole?: iam.Role, + readonly lambdaIamActionsRequired: string[], + readonly sourceBucket?: BucketDetails, + readonly destinationBucket?: BucketDetails, +} + +export interface BucketDetails { + readonly bucket?: s3.Bucket, + readonly bucketInterface: s3.IBucket, + readonly loggingBucket?: s3.Bucket +} + +export function ConfigureTranslateSupport(scope: Construct, id: string, props: TranslateProps): TranslateConfiguration { + + let configuration: TranslateConfiguration = { + lambdaIamActionsRequired: ['translate:TranslateText', 'translate:TranslateDocument'], + }; + + if (props.asyncJobs) { + + // Setup source S3 Bucket + if (props.existingSourceBucketObj) { + configuration = overrideProps(configuration, { + sourceBucket: { + bucketInterface: props.existingSourceBucketObj + } + }, false); + } else { + const buildSourceBucketResponse = buildS3Bucket(scope, { + bucketProps: props.sourceBucketProps, + loggingBucketProps: props.sourceLoggingBucketProps, + logS3AccessLogs: props.logSourceS3AccessLogs + }, `${id}-source-bucket`); + configuration = overrideProps(configuration, { + sourceBucket: { + bucket: buildSourceBucketResponse.bucket, + loggingBucket: buildSourceBucketResponse.loggingBucket, + bucketInterface: buildSourceBucketResponse.bucket, + } + }, false); + } + + // Setup destination S3 Bucket + if (props.useSameBucket) { + configuration = overrideProps(configuration, { + destinationBucket: { + bucketInterface: configuration.sourceBucket?.bucketInterface, + bucket: configuration.sourceBucket?.bucket, + loggingBucket: configuration.sourceBucket?.loggingBucket, + } + }, false); + } else { + if (props.existingDestinationBucketObj) { + configuration = overrideProps(configuration, { + destinationBucket: { + bucketInterface: props.existingDestinationBucketObj + } + }, false); + } else { + const buildDestinationBucketResponse = buildS3Bucket(scope, { + bucketProps: props.destinationBucketProps, + loggingBucketProps: props.destinationLoggingBucketProps, + logS3AccessLogs: props.logDestinationS3AccessLogs + }, `${id}-destination-bucket`); + configuration = overrideProps(configuration, { + destinationBucket: { + bucket: buildDestinationBucketResponse.bucket, + loggingBucket: buildDestinationBucketResponse.loggingBucket, + bucketInterface: buildDestinationBucketResponse.bucket, + } + }, false); + } + } + + // Set up role that is sent to the Translate service + const translateServiceRole = new iam.Role(scope, `${id}-translate-service-role`, { + assumedBy: new iam.ServicePrincipal('translate.amazonaws.com'), + }); + configuration.destinationBucket?.bucketInterface.grantReadWrite(translateServiceRole); + configuration.sourceBucket?.bucketInterface.grantRead(translateServiceRole); + configuration = overrideProps(configuration, { + translateRole: translateServiceRole + }, false); + + // Give the Lambda function additional permissions + configuration.lambdaIamActionsRequired.push("translate:DescribeTextTranslationJob"); + configuration.lambdaIamActionsRequired.push("translate:ListTextTranslationJobs"); + configuration.lambdaIamActionsRequired.push("translate:StartTextTranslationJob"); + configuration.lambdaIamActionsRequired.push("translate:StopTextTranslationJob"); + + } + return configuration; +} + +export function CheckTranslateProps(props: TranslateProps): void { + let errorMessages = ''; + let errorFound = false; + + if (props.asyncJobs) { + + // Check source bucket props + const sourceS3Props = { + existingBucketObj: props.existingSourceBucketObj, + bucketProps: props.sourceBucketProps, + loggingBucketProps: props.sourceLoggingBucketProps, + logS3AccessLogs: props.logSourceS3AccessLogs + }; + CheckS3Props(sourceS3Props); + + // Check destination bucket props (only if not using same bucket) + if (!props.useSameBucket) { + const destinationS3Props = { + existingBucketObj: props.existingDestinationBucketObj, + bucketProps: props.destinationBucketProps, + loggingBucketProps: props.destinationLoggingBucketProps, + logS3AccessLogs: props.logDestinationS3AccessLogs + }; + CheckS3Props(destinationS3Props); + } + } + + // If asyncJobs is false, no S3 bucket props should be provided + if (!props.asyncJobs) { + if (props.existingSourceBucketObj || props.sourceBucketProps || + props.existingDestinationBucketObj || props.destinationBucketProps || + props.sourceLoggingBucketProps || props.destinationLoggingBucketProps || + props.logSourceS3AccessLogs !== undefined || props.logDestinationS3AccessLogs !== undefined || + props.sourceBucketEnvironmentVariableName || props.destinationBucketEnvironmentVariableName || + props.dataAccessRoleArnEnvironmentVariableName ||props.useSameBucket) { + errorMessages += 'S3 bucket properties can only be provided when asyncJobs is true'; + errorFound = true; + } + } + + // If useSameBucket is true, no destination bucket props should be provided + if (props.useSameBucket) { + if (props.existingDestinationBucketObj || props.destinationBucketProps || + props.destinationLoggingBucketProps || props.logDestinationS3AccessLogs !== undefined) { + errorMessages += 'Destination bucket properties cannot be provided when useSameBucket is true'; + errorFound = true; + } + } + + if (errorFound) { + throw new Error(errorMessages); + } +} diff --git a/source/patterns/@aws-solutions-constructs/core/lib/utils.ts b/source/patterns/@aws-solutions-constructs/core/lib/utils.ts index 313004635..1739de111 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/utils.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/utils.ts @@ -23,8 +23,8 @@ import * as cdk from 'aws-cdk-lib'; import * as lambda from 'aws-cdk-lib/aws-lambda'; import { Construct } from "constructs"; -export const COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME = lambda.Runtime.NODEJS_20_X; -export const COMMERCIAL_REGION_LAMBDA_NODE_STRING = "nodejs20.x"; +export const COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME = lambda.Runtime.NODEJS_22_X; +export const COMMERCIAL_REGION_LAMBDA_NODE_STRING = "nodejs22.x"; function isObject(val: object) { return val !== null && typeof val === 'object' diff --git a/source/patterns/@aws-solutions-constructs/core/lib/vpc-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/vpc-helper.ts index 8e21278a1..0671ebbd3 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/vpc-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/vpc-helper.ts @@ -96,7 +96,8 @@ export enum ServiceEndpointTypes { BEDROCK = "BEDROCK", BEDROCK_RUNTIME = "BEDROCK_RUNTIME", KENDRA = "KENDRA", - TRANSCRIBE = "TRANSCRIBE" + TRANSCRIBE = "TRANSCRIBE", + TRANSLATE = "TRANSLATE" } enum EndpointTypes { @@ -196,6 +197,11 @@ const endpointSettings: EndpointDefinition[] = [ endpointName: ServiceEndpointTypes.TRANSCRIBE, endpointType: EndpointTypes.INTERFACE, endpointInterfaceService: ec2.InterfaceVpcEndpointAwsService.TRANSCRIBE + }, + { + endpointName: ServiceEndpointTypes.TRANSLATE, + endpointType: EndpointTypes.INTERFACE, + endpointInterfaceService: ec2.InterfaceVpcEndpointAwsService.TRANSLATE } ]; diff --git a/source/patterns/@aws-solutions-constructs/core/test/TwoLogGroups.json b/source/patterns/@aws-solutions-constructs/core/test/TwoLogGroups.json deleted file mode 100644 index 62ce270f8..000000000 --- a/source/patterns/@aws-solutions-constructs/core/test/TwoLogGroups.json +++ /dev/null @@ -1,365 +0,0 @@ -{ - "Resources": { - "lambdatestServiceRoleF3BDB8FC": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "ManagedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "lambdatest8B679D7F": { - "Type": "AWS::Lambda::Function", - "Properties": { - "Code": { - "ZipFile": "exports.handler = async (event) => console.log(event)" - }, - "Handler": "index.handler", - "Role": { - "Fn::GetAtt": [ - "lambdatestServiceRoleF3BDB8FC", - "Arn" - ] - }, - "Runtime": "nodejs20.x" - }, - "DependsOn": [ - "lambdatestServiceRoleF3BDB8FC" - ], - "Metadata": { - "cfn_nag": { - "rules_to_suppress": [ - { - "id": "W58", - "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" - }, - { - "id": "W89", - "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" - }, - { - "id": "W92", - "reason": "This Lambda Function is created for integration testing purposes only and is not part of an actual construct" - } - ] - } - } - }, - "lambdatestLogGroupA97D94B2": { - "Type": "AWS::Logs::LogGroup", - "Properties": { - "LogGroupName": { - "Fn::Join": [ - "", - [ - "/aws/lambda/", - { - "Ref": "lambdatest8B679D7F" - } - ] - ] - }, - "RetentionInDays": 731 - }, - "UpdateReplacePolicy": "Retain", - "DeletionPolicy": "Retain" - }, - "StateMachineLogGroup15B91BCB": { - "Type": "AWS::Logs::LogGroup", - "Properties": { - "LogGroupName": { - "Fn::Join": [ - "", - [ - "/aws/vendedlogs/states/constructs/DefaultDefaultStateMachineLog-", - { - "Fn::Select": [ - 2, - { - "Fn::Split": [ - "/", - { - "Ref": "AWS::StackId" - } - ] - } - ] - } - ] - ] - } - }, - "UpdateReplacePolicy": "Retain", - "DeletionPolicy": "Retain", - "Metadata": { - "cfn_nag": { - "rules_to_suppress": [ - { - "id": "W86", - "reason": "Retention period for CloudWatchLogs LogGroups are set to 'Never Expire' to preserve customer data indefinitely" - }, - { - "id": "W84", - "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)" - } - ] - } - } - }, - "StateMachineRoleB840431D": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "states.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "StateMachineRoleDefaultPolicyDF1E6607": { - "Type": "AWS::IAM::Policy", - "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "lambdatest8B679D7F", - "Arn" - ] - }, - { - "Fn::Join": [ - "", - [ - { - "Fn::GetAtt": [ - "lambdatest8B679D7F", - "Arn" - ] - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "Effect": "Allow", - "Resource": "*" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "StateMachineRoleDefaultPolicyDF1E6607", - "Roles": [ - { - "Ref": "StateMachineRoleB840431D" - } - ] - }, - "Metadata": { - "cfn_nag": { - "rules_to_suppress": [ - { - "id": "W12", - "reason": "These are CDK defaults. The 'LogDelivery' actions do not support resource-level authorizations. Any logging is done by State Machine code" - } - ] - } - } - }, - "StateMachine2E01A3A5": { - "Type": "AWS::StepFunctions::StateMachine", - "Properties": { - "DefinitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"tasktest\",\"States\":{\"tasktest\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"", - { - "Fn::GetAtt": [ - "lambdatest8B679D7F", - "Arn" - ] - }, - "\",\"Payload.$\":\"$\"}}}}" - ] - ] - }, - "LoggingConfiguration": { - "Destinations": [ - { - "CloudWatchLogsLogGroup": { - "LogGroupArn": { - "Fn::GetAtt": [ - "StateMachineLogGroup15B91BCB", - "Arn" - ] - } - } - } - ], - "Level": "ERROR" - }, - "RoleArn": { - "Fn::GetAtt": [ - "StateMachineRoleB840431D", - "Arn" - ] - }, - "StateMachineName": "myStateMachine" - }, - "DependsOn": [ - "StateMachineRoleDefaultPolicyDF1E6607", - "StateMachineRoleB840431D" - ], - "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" - }, - "ExecutionFailedAlarm0469091C": { - "Type": "AWS::CloudWatch::Alarm", - "Properties": { - "AlarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "ComparisonOperator": "GreaterThanOrEqualToThreshold", - "Dimensions": [ - { - "Name": "StateMachineArn", - "Value": { - "Ref": "StateMachine2E01A3A5" - } - } - ], - "EvaluationPeriods": 1, - "MetricName": "ExecutionsFailed", - "Namespace": "AWS/States", - "Period": 300, - "Statistic": "Sum", - "Threshold": 1 - } - }, - "ExecutionThrottledAlarm70E4EA04": { - "Type": "AWS::CloudWatch::Alarm", - "Properties": { - "AlarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "ComparisonOperator": "GreaterThanOrEqualToThreshold", - "Dimensions": [ - { - "Name": "StateMachineArn", - "Value": { - "Ref": "StateMachine2E01A3A5" - } - } - ], - "EvaluationPeriods": 1, - "MetricName": "ExecutionThrottled", - "Namespace": "AWS/States", - "Period": 300, - "Statistic": "Sum", - "Threshold": 1 - } - }, - "ExecutionAbortedAlarmC353A36A": { - "Type": "AWS::CloudWatch::Alarm", - "Properties": { - "AlarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "ComparisonOperator": "GreaterThanOrEqualToThreshold", - "Dimensions": [ - { - "Name": "StateMachineArn", - "Value": { - "Ref": "StateMachine2E01A3A5" - } - } - ], - "EvaluationPeriods": 1, - "MetricName": "ExecutionsAborted", - "Namespace": "AWS/States", - "Period": 300, - "Statistic": "Maximum", - "Threshold": 1 - } - } - }, - "Parameters": { - "BootstrapVersion": { - "Type": "AWS::SSM::Parameter::Value", - "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" - } - }, - "Rules": { - "CheckBootstrapVersion": { - "Assertions": [ - { - "Assert": { - "Fn::Not": [ - { - "Fn::Contains": [ - [ - "1", - "2", - "3", - "4", - "5" - ], - { - "Ref": "BootstrapVersion" - } - ] - } - ] - }, - "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." - } - ] - } - } -} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/core/test/pipes-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/pipes-helper.test.ts index 092f7fe86..70b97ff20 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/pipes-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/pipes-helper.test.ts @@ -333,7 +333,7 @@ test('Create a pipe with Lambda function enrichment', () => { const enrichmentFunction = new lambda.Function(stack, 'enrichment-function', { code: lambda.Code.fromAsset(`${__dirname}/lambda-test`), handler: "index.handler", - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, }); const pipeResponse = defaults.BuildPipe(stack, pipeId, { diff --git a/source/patterns/@aws-solutions-constructs/core/test/step-function-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/step-function-helper.test.ts index 74fdf91e9..450135446 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/step-function-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/step-function-helper.test.ts @@ -127,7 +127,7 @@ test('Check State Machine IAM Policy with 2 Lambda fuctions in State Machine Def // State Machine definition const taskOne = new sfnTasks.LambdaInvoke(stack, 'task-one', { lambdaFunction: new lambda.Function(stack, 'first-function', { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', code: lambda.Code.fromInline(`exports.handler = async (event) => {return;}`) }), @@ -135,7 +135,7 @@ test('Check State Machine IAM Policy with 2 Lambda fuctions in State Machine Def const taskTwo = new sfnTasks.LambdaInvoke(stack, 'task-two', { lambdaFunction: new lambda.Function(stack, 'second-function', { - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'index.handler', code: lambda.Code.fromInline(`exports.handler = async (event) => {return;}`) }), diff --git a/source/patterns/@aws-solutions-constructs/core/test/test-helper.ts b/source/patterns/@aws-solutions-constructs/core/test/test-helper.ts index e64eb4015..287bcc466 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/test-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/test-helper.ts @@ -127,7 +127,7 @@ export function CreateTestStateMachineDefinitionBody(scope: Construct, id: strin code: new lambda.InlineCode( "exports.handler = async (event) => console.log(event)" ), - runtime: lambda.Runtime.NODEJS_20_X, + runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: "index.handler", }); diff --git a/source/patterns/@aws-solutions-constructs/core/test/translate-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/translate-helper.test.ts new file mode 100644 index 000000000..1adde173d --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/core/test/translate-helper.test.ts @@ -0,0 +1,655 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import * as defaults from "../index"; +import { CreateScrapBucket } from "./test-helper"; +import { App, Stack } from "aws-cdk-lib"; +import { Match, Template } from 'aws-cdk-lib/assertions'; + +test('Test deployment with asyncJobs enabled', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const configuration = defaults.ConfigureTranslateSupport(stack, 'test', { asyncJobs: true }); + + expect(configuration.sourceBucket).toBeDefined(); + expect(configuration.sourceBucket?.bucket).toBeDefined(); + expect(configuration.sourceBucket?.bucketInterface).toBeDefined(); + expect(configuration.sourceBucket?.loggingBucket).toBeDefined(); + expect(configuration.destinationBucket).toBeDefined(); + expect(configuration.destinationBucket?.bucket).toBeDefined(); + expect(configuration.destinationBucket?.bucketInterface).toBeDefined(); + expect(configuration.destinationBucket?.loggingBucket).toBeDefined(); + expect(configuration.translateRole).toBeDefined(); + + expect(configuration.lambdaIamActionsRequired).toEqual(expect.arrayContaining([ + 'translate:TranslateText', + 'translate:TranslateDocument', + 'translate:DescribeTextTranslationJob', + 'translate:ListTextTranslationJobs', + 'translate:StartTextTranslationJob', + 'translate:StopTextTranslationJob' + ])); + expect(configuration.lambdaIamActionsRequired).toHaveLength(6); + + const template = Template.fromStack(stack); + + template.resourceCountIs('AWS::S3::Bucket', 4); // 2 main buckets + 2 logging buckets + + // Check translate service permissions + template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: Match.arrayWith([ + Match.objectLike({ + Effect: 'Allow', + Action: Match.arrayWith([ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:PutObjectTagging", + "s3:PutObjectVersionTagging", + "s3:Abort*" + ]), + Resource: [ + { + "Fn::GetAtt": [ + Match.stringLikeRegexp("testdestinationbucketS3Bucket*."), + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + Match.stringLikeRegexp("testdestinationbucketS3Bucket*."), + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }), + Match.objectLike({ + Effect: 'Allow', + Action: Match.arrayWith([ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*", + ]), + Resource: [ + { + "Fn::GetAtt": [ + Match.stringLikeRegexp("testsourcebucketS3Bucket.*"), + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + Match.stringLikeRegexp("testsourcebucketS3Bucket.*"), + "Arn" + ] + }, + "/*" + ] + ] + } + ] + })]) + }, + Roles: [ + { + Ref: Match.stringLikeRegexp("testtranslateservicerole.*") + } + ] + }); + + template.hasResourceProperties("AWS::IAM::Role", { + AssumeRolePolicyDocument: { + Statement: [ + { + Action: "sts:AssumeRole", + Effect: "Allow", + Principal: { + Service: "translate.amazonaws.com" + } + } + ], + Version: "2012-10-17" + } + }); + + // Check that there just 1 policy and Role + template.resourceCountIs("AWS::IAM::Policy", 1); + template.resourceCountIs("AWS::IAM::Role", 1); +}); + +test('Test deployment with without asyncJobs enabled', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const configuration = defaults.ConfigureTranslateSupport(stack, 'test', {}); + + expect(configuration.sourceBucket).not.toBeDefined(); + expect(configuration.destinationBucket).not.toBeDefined(); + expect(configuration.translateRole).not.toBeDefined(); + expect(configuration.lambdaIamActionsRequired).toEqual(expect.arrayContaining([ + 'translate:TranslateText', + 'translate:TranslateDocument', + ])); + expect(configuration.lambdaIamActionsRequired).toHaveLength(2); + +}); + +test('Test deployment with useSameBucket', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const configuration = defaults.ConfigureTranslateSupport(stack, 'test', { asyncJobs: true, useSameBucket: true }); + + expect(configuration.sourceBucket).toBeDefined(); + expect(configuration.sourceBucket?.bucket).toBeDefined(); + expect(configuration.sourceBucket?.bucketInterface).toBeDefined(); + expect(configuration.sourceBucket?.loggingBucket).toBeDefined(); + expect(configuration.destinationBucket).toBeDefined(); + expect(configuration.destinationBucket?.bucket).toBeDefined(); + expect(configuration.destinationBucket?.bucketInterface).toBeDefined(); + expect(configuration.destinationBucket?.loggingBucket).toBeDefined(); + expect(configuration.translateRole).toBeDefined(); + + expect(configuration.lambdaIamActionsRequired).toEqual(expect.arrayContaining([ + 'translate:TranslateText', + 'translate:TranslateDocument', + 'translate:DescribeTextTranslationJob', + 'translate:ListTextTranslationJobs', + 'translate:StartTextTranslationJob', + 'translate:StopTextTranslationJob' + ])); + expect(configuration.lambdaIamActionsRequired).toHaveLength(6); + expect(configuration.sourceBucket?.bucket).toBe(configuration.destinationBucket?.bucket); + expect(configuration.sourceBucket?.bucketInterface).toBe(configuration.destinationBucket?.bucketInterface); + expect(configuration.sourceBucket?.loggingBucket).toBe(configuration.destinationBucket?.loggingBucket); + + const template = Template.fromStack(stack); + + template.resourceCountIs('AWS::S3::Bucket', 2); // 1 main bucket + 1 logging bucket + + // Check translate service permissions + template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: Match.arrayWith([ + Match.objectLike({ + Effect: 'Allow', + Action: Match.arrayWith([ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:PutObjectTagging", + "s3:PutObjectVersionTagging", + "s3:Abort*" + ]), + Resource: [ + { + "Fn::GetAtt": [ + Match.stringLikeRegexp("testsourcebucketS3Bucket*."), + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + Match.stringLikeRegexp("testsourcebucketS3Bucket*."), + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }), + Match.objectLike({ + Effect: 'Allow', + Action: Match.arrayWith([ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*", + ]), + Resource: [ + { + "Fn::GetAtt": [ + Match.stringLikeRegexp("testsourcebucketS3Bucket.*"), + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + Match.stringLikeRegexp("testsourcebucketS3Bucket.*"), + "Arn" + ] + }, + "/*" + ] + ] + } + ] + })]) + }, + Roles: [ + { + Ref: Match.stringLikeRegexp("testtranslateservicerole.*") + } + ] + }); + + // Check that there just 1 policy + template.resourceCountIs("AWS::IAM::Policy", 1); +}); + +test('Test deployment with source, destination and logging bucket Props', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + defaults.ConfigureTranslateSupport(stack, 'test', { + asyncJobs: true, + sourceBucketProps: { + bucketName: "source-bucket" + }, + sourceLoggingBucketProps: { + bucketName: "source-logging-bucket" + }, + destinationBucketProps: { + bucketName: "destination-bucket" + }, + destinationLoggingBucketProps: { + bucketName: "destination-logging-bucket" + }, + }); + + const template = Template.fromStack(stack); + + template.resourceCountIs("AWS::S3::Bucket", 4); + template.hasResourceProperties("AWS::S3::Bucket", { + BucketName: "source-bucket", + LoggingConfiguration: { + DestinationBucketName: { + Ref: Match.stringLikeRegexp("testsourcebucketS3LoggingBucket.*") + } + }, + }); + template.hasResourceProperties("AWS::S3::Bucket", { + BucketName: "source-logging-bucket", + AccessControl: "LogDeliveryWrite" + }); + template.hasResourceProperties("AWS::S3::Bucket", { + BucketName: "destination-bucket", + LoggingConfiguration: { + DestinationBucketName: { + Ref: Match.stringLikeRegexp("testdestinationbucketS3LoggingBucket.*") + } + }, + }); + template.hasResourceProperties("AWS::S3::Bucket", { + BucketName: "destination-logging-bucket", + AccessControl: "LogDeliveryWrite" + }); +}); + +test('Test deployment with existing Source bucket and useSameBucket', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const existingSourceBucket = defaults.CreateScrapBucket(stack, "scrap", {}); + const configuration = defaults.ConfigureTranslateSupport(stack, 'test', { + asyncJobs: true, + existingSourceBucketObj: existingSourceBucket, + useSameBucket: true, + }); + + expect(configuration.sourceBucket).toBeDefined(); + expect(configuration.sourceBucket?.bucket).not.toBeDefined(); + expect(configuration.sourceBucket?.bucketInterface).toBeDefined(); + expect(configuration.sourceBucket?.loggingBucket).not.toBeDefined(); + expect(configuration.destinationBucket).toBeDefined(); + expect(configuration.destinationBucket?.bucket).not.toBeDefined(); + expect(configuration.destinationBucket?.bucketInterface).toBeDefined(); + expect(configuration.destinationBucket?.loggingBucket).not.toBeDefined(); + expect(configuration.destinationBucket?.bucketInterface).toBe(existingSourceBucket); + expect(configuration.sourceBucket?.bucketInterface).toBe(existingSourceBucket); +}); + +test('Test deployment with existing Destination bucket', () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const existingDestinationBucket = defaults.CreateScrapBucket(stack, "scrap", {}); + const configuration = defaults.ConfigureTranslateSupport(stack, 'test', { + asyncJobs: true, + existingDestinationBucketObj: existingDestinationBucket + }); + + expect(configuration.sourceBucket).toBeDefined(); + expect(configuration.sourceBucket?.bucket).toBeDefined(); + expect(configuration.sourceBucket?.bucketInterface).toBeDefined(); + expect(configuration.sourceBucket?.loggingBucket).toBeDefined(); + expect(configuration.destinationBucket).toBeDefined(); + expect(configuration.destinationBucket?.bucket).not.toBeDefined(); + expect(configuration.destinationBucket?.bucketInterface).toBeDefined(); + expect(configuration.destinationBucket?.loggingBucket).not.toBeDefined(); + expect(configuration.destinationBucket?.bucketInterface).toBe(existingDestinationBucket); + const template = Template.fromStack(stack); + + template.resourceCountIs('AWS::S3::Bucket', 4); // 2 main buckets + 2 logging buckets + + // Check translate service permissions + template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: Match.arrayWith([ + Match.objectLike({ + Effect: 'Allow', + Action: Match.arrayWith([ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:PutObjectTagging", + "s3:PutObjectVersionTagging", + "s3:Abort*" + ]) + }) + ]) + }, + Roles: [ + { + Ref: Match.stringLikeRegexp("testtranslateservicerole.*") + } + ] + }); + + // Check that there just 1 policy + template.resourceCountIs("AWS::IAM::Policy", 1); +}); + +// ============================================= +// Test CheckTranslateProps() +// ============================================= +test("CheckTranslateProps with valid asyncJobs true", () => { + const props = { + asyncJobs: true, + sourceBucketProps: {} + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).not.toThrow(); +}); + +test("CheckTranslateProps with valid asyncJobs false", () => { + const props = { + asyncJobs: false + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).not.toThrow(); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and existingSourceBucketObj is provided", () => { + const stack = new Stack(); + const props = { + asyncJobs: false, + existingSourceBucketObj: CreateScrapBucket(stack, "testbucket") + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and sourceBucketProps is provided", () => { + const props = { + asyncJobs: false, + sourceBucketProps: {} + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and existingDestinationBucketObj is provided", () => { + const stack = new Stack(); + const props = { + asyncJobs: false, + existingDestinationBucketObj: CreateScrapBucket(stack, "testbucket") + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and destinationBucketProps is provided", () => { + const props = { + asyncJobs: false, + destinationBucketProps: {} + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and sourceLoggingBucketProps is provided", () => { + const props = { + asyncJobs: false, + sourceLoggingBucketProps: {} + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and destinationLoggingBucketProps is provided", () => { + const props = { + asyncJobs: false, + destinationLoggingBucketProps: {} + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and logSourceS3AccessLogs is provided", () => { + const props = { + asyncJobs: false, + logSourceS3AccessLogs: true + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and logDestinationS3AccessLogs is provided", () => { + const props = { + asyncJobs: false, + logDestinationS3AccessLogs: true + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and sourceBucketEnvironmentVariableName is provided", () => { + const props = { + asyncJobs: false, + sourceBucketEnvironmentVariableName: 'MY_SOURCE_BUCKET' + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and destinationBucketEnvironmentVariableName is provided", () => { + const props = { + asyncJobs: false, + destinationBucketEnvironmentVariableName: 'MY_DEST_BUCKET' + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and dataAccessRoleArnEnvironmentVariableName is provided", () => { + const props = { + asyncJobs: false, + dataAccessRoleArnEnvironmentVariableName: 'MY_ROLE_NAME' + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when asyncJobs is false and useSameBucket is provided", () => { + const props = { + asyncJobs: false, + useSameBucket: true + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('S3 bucket properties can only be provided when asyncJobs is true'); +}); + +test("CheckTranslateProps throws error when useSameBucket is true and existingDestinationBucketObj is provided", () => { + const stack = new Stack(); + const props = { + asyncJobs: true, + useSameBucket: true, + existingDestinationBucketObj: CreateScrapBucket(stack, "testbucket") + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('Destination bucket properties cannot be provided when useSameBucket is true'); +}); + +test("CheckTranslateProps throws error when useSameBucket is true and destinationBucketProps is provided", () => { + const props = { + asyncJobs: true, + useSameBucket: true, + destinationBucketProps: {} + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('Destination bucket properties cannot be provided when useSameBucket is true'); +}); + +test("CheckTranslateProps throws error when useSameBucket is true and destinationLoggingBucketProps is provided", () => { + const props = { + asyncJobs: true, + useSameBucket: true, + destinationLoggingBucketProps: {} + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('Destination bucket properties cannot be provided when useSameBucket is true'); +}); + +test("CheckTranslateProps throws error when useSameBucket is true and logDestinationS3AccessLogs is provided", () => { + const props = { + asyncJobs: true, + useSameBucket: true, + logDestinationS3AccessLogs: true + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('Destination bucket properties cannot be provided when useSameBucket is true'); +}); + +test("CheckTranslateProps with valid useSameBucket true and source bucket props", () => { + const props = { + asyncJobs: true, + useSameBucket: true, + sourceBucketProps: {} + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).not.toThrow(); +}); + +test("CheckTranslateProps calls CheckS3Props() for source bucket", () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const props = { + asyncJobs: true, + sourceBucketProps: {}, + existingSourceBucketObj: CreateScrapBucket(stack, 'test') + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('Error - Either provide bucketProps or existingBucketObj, but not both.\n'); +}); + +test("CheckTranslateProps calls CheckS3Props() for destination bucket", () => { + const app = new App(); + const stack = new Stack(app, "test-stack"); + + const props = { + asyncJobs: true, + destinationBucketProps: {}, + existingDestinationBucketObj: CreateScrapBucket(stack, 'test') + }; + + expect(() => { + defaults.CheckTranslateProps(props); + }).toThrow('Error - Either provide bucketProps or existingBucketObj, but not both.\n'); +}); diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.ts b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.ts new file mode 100644 index 000000000..a14c5aa2a --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/asset.e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e/index.ts @@ -0,0 +1,135 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { KMSClient, GetKeyPolicyCommand, DescribeKeyCommand, PutKeyPolicyCommand, KeyManagerType } from "@aws-sdk/client-kms"; + +const kmsClient = new KMSClient(); + +export const handler = async (event: any, context: any) => { + + let status = 'SUCCESS'; + let responseData = {}; + + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + + try { + const kmsKeyId = event.ResourceProperties.KmsKeyId; + const cloudFrontDistributionId = event.ResourceProperties.CloudFrontDistributionId; + const accountId = event.ResourceProperties.AccountId; + const region = process.env.AWS_REGION; + + const describeKeyCommandResponse = await kmsClient.send(new DescribeKeyCommand({ + KeyId: kmsKeyId + })); + + if (describeKeyCommandResponse.KeyMetadata?.KeyManager === KeyManagerType.AWS) { + return { + Status: 'SUCCESS', + Reason: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An AWS managed key was provided, no action needed from the custom resource, exiting now.', + }; + } + + // The PolicyName is specified as "default" below because that is the only valid name as + // written in the documentation for @aws-sdk/client-kms.GetKeyPolicyCommandInput: + // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-kms/Interface/GetKeyPolicyCommandInput/ + const getKeyPolicyCommandResponse = await kmsClient.send(new GetKeyPolicyCommand({ + KeyId: kmsKeyId, + PolicyName: 'default' + })); + + if (!getKeyPolicyCommandResponse.Policy) { + return { + Status: 'FAILED', + Reason: 'An error occurred while retrieving the key policy.', + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: 'An error occurred while retrieving the key policy.', + }; + } + + // Define the updated key policy to allow CloudFront access + const keyPolicy = JSON.parse(getKeyPolicyCommandResponse?.Policy); + const keyPolicyStatement = { + Sid: 'Grant-CloudFront-Distribution-Key-Usage', + Effect: 'Allow', + Principal: { + Service: 'cloudfront.amazonaws.com', + }, + Action: [ + 'kms:Decrypt', + 'kms:Encrypt', + 'kms:GenerateDataKey*', + 'kms:ReEncrypt*' + ], + Resource: `arn:aws:kms:${region}:${accountId}:key/${kmsKeyId}`, + Condition: { + StringEquals: { + 'AWS:SourceArn': `arn:aws:cloudfront::${accountId}:distribution/${cloudFrontDistributionId}` + } + } + }; + const updatedKeyPolicy = updateKeyPolicy(keyPolicy, keyPolicyStatement); + + await kmsClient.send(new PutKeyPolicyCommand({ + KeyId: kmsKeyId, + Policy: JSON.stringify(updatedKeyPolicy), + PolicyName: 'default' + })); + } catch (err) { + status = 'FAILED'; + responseData = { + Error: JSON.stringify(err) + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +/** + * Updates a provided key policy with a provided key policy statement. First checks whether the provided key policy statement + * already exists. If an existing key policy is found with a matching sid, the provided key policy will overwrite the existing + * key policy. If no matching key policy is found, the provided key policy will be appended onto the array of policy statements. + * @param keyPolicy - the JSON.parse'd result of the otherwise stringified key policy. + * @param keyPolicyStatement - the key policy statement to be added to the key policy. + * @returns keyPolicy - the updated key policy. + */ +export const updateKeyPolicy = (keyPolicy: any, keyPolicyStatement: any) => { + // Check to see if a duplicate key policy exists by matching on the sid. This is to prevent duplicate key policies + // from being added/updated in response to a stack being updated one or more times after initial creation. + const existingKeyPolicyIndex = keyPolicy.Statement.findIndex((statement: any) => statement.Sid === keyPolicyStatement.Sid); + // If a match is found, overwrite the key policy statement... + // Otherwise, push the new key policy to the array of statements + if (existingKeyPolicyIndex > -1) { + keyPolicy.Statement[existingKeyPolicyIndex] = keyPolicyStatement; + } else { + keyPolicy.Statement.push(keyPolicyStatement); + } + // Return the result + return keyPolicy; +}; diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/integ.json index 4a9873aae..48da36ed2 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "key-policy-updater/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "keypolicyupdaterIntegDefaultTestDeployAssert2855331B" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/key-policy-updater.assets.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/key-policy-updater.assets.json index 2d41e3ce7..0818387ff 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/key-policy-updater.assets.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/key-policy-updater.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e": { "displayName": "LambdaFunction/Code", @@ -29,16 +29,16 @@ } } }, - "f243ed85384d9205794ec55461263bc42ba4bfe1862d8f29cd8106103dc5f22a": { + "84538d5fd11511f4330c052e26418640452ea53c8541c34df5f362486d1e1af8": { "displayName": "key-policy-updater Template", "source": { "path": "key-policy-updater.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-bbb958a5": { + "current_account-current_region-9f23197e": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f243ed85384d9205794ec55461263bc42ba4bfe1862d8f29cd8106103dc5f22a.json", + "objectKey": "84538d5fd11511f4330c052e26418640452ea53c8541c34df5f362486d1e1af8.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/key-policy-updater.template.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/key-policy-updater.template.json index 5bde5cae6..346b4237a 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/key-policy-updater.template.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/key-policy-updater.template.json @@ -252,7 +252,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/keypolicyupdaterIntegDefaultTestDeployAssert2855331B.assets.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/keypolicyupdaterIntegDefaultTestDeployAssert2855331B.assets.json index 27e7e66f6..f3e2aa5af 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/keypolicyupdaterIntegDefaultTestDeployAssert2855331B.assets.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/keypolicyupdaterIntegDefaultTestDeployAssert2855331B.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "keypolicyupdaterIntegDefaultTestDeployAssert2855331B Template", diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/manifest.json index 6632bef04..0b03f3097 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f243ed85384d9205794ec55461263bc42ba4bfe1862d8f29cd8106103dc5f22a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/84538d5fd11511f4330c052e26418640452ea53c8541c34df5f362486d1e1af8.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -328,7 +328,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -535,57 +535,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -594,7 +585,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -671,7 +665,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -815,7 +809,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -844,7 +841,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -908,7 +908,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -942,7 +945,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -965,7 +971,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -995,6 +1004,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/tree.json index 570cc83a5..8a7b86eb6 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.key-policy-updater.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"key-policy-updater":{"id":"key-policy-updater","path":"key-policy-updater","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"test key":{"id":"test key","path":"key-policy-updater/test key","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.206.0","metadata":[{"removalPolicy":"destroy","enableKeyRotation":true}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/test key/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"test bucket":{"id":"test bucket","path":"key-policy-updater/test bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.206.0","metadata":[{"removalPolicy":"destroy","encryption":"S3_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/test bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]}}}},"Policy":{"id":"Policy","path":"key-policy-updater/test bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.206.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/test bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testbucketA976ABFD"},"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Principal":{"CanonicalUser":{"Fn::GetAtt":["testdistOrigin1S3Origin7E994241","S3CanonicalUserId"]}},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testbucketA976ABFD","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test dist":{"id":"test dist","path":"key-policy-updater/test dist","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.206.0","metadata":[{"defaultBehavior":{"origin":"*"}}]},"children":{"Origin1":{"id":"Origin1","path":"key-policy-updater/test dist/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"S3Origin":{"id":"S3Origin","path":"key-policy-updater/test dist/Origin1/S3Origin","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.OriginAccessIdentity","version":"2.206.0","metadata":[{}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/test dist/Origin1/S3Origin/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnCloudFrontOriginAccessIdentity","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::CloudFrontOriginAccessIdentity","aws:cdk:cloudformation:props":{"cloudFrontOriginAccessIdentityConfig":{"comment":"Identity for keypolicyupdatertestdistOrigin1D732FBD3"}}}}}}}},"Resource":{"id":"Resource","path":"key-policy-updater/test dist/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::GetAtt":["testbucketA976ABFD","RegionalDomainName"]},"id":"keypolicyupdatertestdistOrigin1D732FBD3","s3OriginConfig":{"originAccessIdentity":{"Fn::Join":["",["origin-access-identity/cloudfront/",{"Ref":"testdistOrigin1S3Origin7E994241"}]]}}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"keypolicyupdatertestdistOrigin1D732FBD3","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"allow-all"},"httpVersion":"http2","ipv6Enabled":true}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"key-policy-updater/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"key-policy-updater/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"key-policy-updater/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"key-policy-updater/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","description":"*","timeout":"*","memorySize":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"key-policy-updater/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"key-policy-updater/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"key-policy-updater/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"key-policy-updater/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e.zip"},"description":"Custom resource function that updates a provided key policy to allow CloudFront access.","environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"key-policy-updater/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"TestResourceCmkPolicy":{"id":"TestResourceCmkPolicy","path":"key-policy-updater/TestResourceCmkPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/TestResourceCmkPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kms:DescribeKey","kms:GetKeyPolicy","kms:PutKeyPolicy"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkey9B36F12B","Arn"]}}],"Version":"2012-10-17"},"policyName":"TestResourceCmkPolicy977FBAA4","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"KmsKeyPolicyUpdateProvider":{"id":"KmsKeyPolicyUpdateProvider","path":"key-policy-updater/KmsKeyPolicyUpdateProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"KmsKeyPolicyUpdateProviderframeworkonEventServiceRoleDefaultPolicyC8853973","roles":[{"Ref":"KmsKeyPolicyUpdateProviderframeworkonEventServiceRoleD0164B97"}]}}}}}}},"Code":{"id":"Code","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (key-policy-updater/KmsKeyPolicyUpdateProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["KmsKeyPolicyUpdateProviderframeworkonEventServiceRoleD0164B97","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"Version":"2012-10-17"},"policyName":"KmsKeyPolicyUpdateProviderframeworkonEventinlinePolicyAddedToExecutionRole0DC7D970F","roles":[{"Ref":"KmsKeyPolicyUpdateProviderframeworkonEventServiceRoleD0164B97"}]}}}}}}}}},"KmsKeyPolicyUpdater":{"id":"KmsKeyPolicyUpdater","path":"key-policy-updater/KmsKeyPolicyUpdater","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"key-policy-updater/KmsKeyPolicyUpdater/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"key-policy-updater/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"key-policy-updater/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"key-policy-updater/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"key-policy-updater/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"key-policy-updater/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"key-policy-updater/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"key-policy-updater/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"key-policy-updater/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"key-policy-updater":{"id":"key-policy-updater","path":"key-policy-updater","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"test key":{"id":"test key","path":"key-policy-updater/test key","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"2.223.0","metadata":[{"removalPolicy":"destroy","enableKeyRotation":true}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/test key/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"enableKeyRotation":true,"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"test bucket":{"id":"test bucket","path":"key-policy-updater/test bucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.Bucket","version":"2.223.0","metadata":[{"removalPolicy":"destroy","encryption":"S3_MANAGED"}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/test bucket/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucket","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::Bucket","aws:cdk:cloudformation:props":{"bucketEncryption":{"serverSideEncryptionConfiguration":[{"serverSideEncryptionByDefault":{"sseAlgorithm":"AES256"}}]}}}},"Policy":{"id":"Policy","path":"key-policy-updater/test bucket/Policy","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketPolicy","version":"2.223.0","metadata":[{"bucket":"*"}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/test bucket/Policy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.CfnBucketPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::S3::BucketPolicy","aws:cdk:cloudformation:props":{"bucket":{"Ref":"testbucketA976ABFD"},"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Principal":{"CanonicalUser":{"Fn::GetAtt":["testdistOrigin1S3Origin7E994241","S3CanonicalUserId"]}},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["testbucketA976ABFD","Arn"]},"/*"]]}}],"Version":"2012-10-17"}}}}}}}},"test dist":{"id":"test dist","path":"key-policy-updater/test dist","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.223.0","metadata":[{"defaultBehavior":{"origin":"*"}}]},"children":{"Origin1":{"id":"Origin1","path":"key-policy-updater/test dist/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"S3Origin":{"id":"S3Origin","path":"key-policy-updater/test dist/Origin1/S3Origin","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.OriginAccessIdentity","version":"2.223.0","metadata":[{}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/test dist/Origin1/S3Origin/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnCloudFrontOriginAccessIdentity","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::CloudFrontOriginAccessIdentity","aws:cdk:cloudformation:props":{"cloudFrontOriginAccessIdentityConfig":{"comment":"Identity for keypolicyupdatertestdistOrigin1D732FBD3"}}}}}}}},"Resource":{"id":"Resource","path":"key-policy-updater/test dist/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::GetAtt":["testbucketA976ABFD","RegionalDomainName"]},"id":"keypolicyupdatertestdistOrigin1D732FBD3","s3OriginConfig":{"originAccessIdentity":{"Fn::Join":["",["origin-access-identity/cloudfront/",{"Ref":"testdistOrigin1S3Origin7E994241"}]]}}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"keypolicyupdatertestdistOrigin1D732FBD3","cachePolicyId":"658327ea-f89d-4fab-a63d-7e88639e58f6","compress":true,"viewerProtocolPolicy":"allow-all"},"httpVersion":"http2","ipv6Enabled":true}}}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"key-policy-updater/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"key-policy-updater/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"key-policy-updater/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"key-policy-updater/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","description":"*","timeout":"*","memorySize":"*","code":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"key-policy-updater/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"key-policy-updater/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"key-policy-updater/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"key-policy-updater/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"e97825c838d70ceb13ba2f6223a7d94ed35687b70bfb224a0b9128e698e3f28e.zip"},"description":"Custom resource function that updates a provided key policy to allow CloudFront access.","environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"key-policy-updater/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"TestResourceCmkPolicy":{"id":"TestResourceCmkPolicy","path":"key-policy-updater/TestResourceCmkPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/TestResourceCmkPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["kms:DescribeKey","kms:GetKeyPolicy","kms:PutKeyPolicy"],"Effect":"Allow","Resource":{"Fn::GetAtt":["testkey9B36F12B","Arn"]}}],"Version":"2012-10-17"},"policyName":"TestResourceCmkPolicy977FBAA4","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"KmsKeyPolicyUpdateProvider":{"id":"KmsKeyPolicyUpdateProvider","path":"key-policy-updater/KmsKeyPolicyUpdateProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"KmsKeyPolicyUpdateProviderframeworkonEventServiceRoleDefaultPolicyC8853973","roles":[{"Ref":"KmsKeyPolicyUpdateProviderframeworkonEventServiceRoleD0164B97"}]}}}}}}},"Code":{"id":"Code","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (key-policy-updater/KmsKeyPolicyUpdateProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["KmsKeyPolicyUpdateProviderframeworkonEventServiceRoleD0164B97","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"key-policy-updater/KmsKeyPolicyUpdateProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"Version":"2012-10-17"},"policyName":"KmsKeyPolicyUpdateProviderframeworkonEventinlinePolicyAddedToExecutionRole0DC7D970F","roles":[{"Ref":"KmsKeyPolicyUpdateProviderframeworkonEventServiceRoleD0164B97"}]}}}}}}}}},"KmsKeyPolicyUpdater":{"id":"KmsKeyPolicyUpdater","path":"key-policy-updater/KmsKeyPolicyUpdater","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"key-policy-updater/KmsKeyPolicyUpdater/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"key-policy-updater/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"key-policy-updater/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"key-policy-updater/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"key-policy-updater/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"key-policy-updater/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"key-policy-updater/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"key-policy-updater/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"key-policy-updater/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts new file mode 100644 index 000000000..60953c7fc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3"; +import * as crypto from 'crypto'; + +const s3Client = new S3Client({ region: process.env.REGION }); + +export const handler = async (event: any, context: any) => { + let status = 'SUCCESS'; + let responseData = {}; + + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + + const getObjectResponse = await s3Client.send(new GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + + let template = await getObjectResponse.Body?.transformToString(); + + templateValues.forEach((templateValue: any) => { + template = replaceTarget(template, templateValue); + }); + + await s3Client.send(new PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + + responseData = { + TemplateOutputKey: templateOutputKey + }; + } catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +export function replaceTarget(template: string | undefined, templateValue: any) { + template = template?.replace( + new RegExp(`\\b${templateValue.id}\\b`, 'g'), + templateValue.value + ); + return template; +} diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/integ.json index 8dee3cf77..6a4e5045a 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "template-writer-from-asset/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "templatewriterfromassetIntegDefaultTestDeployAssert3AE00E9B" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/manifest.json index d786444ca..8e868fe36 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f2deb00037e54c1d0e8c6835e5fc66b48d87cd45bee452330ce1ba2e7f3e4db1.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/11f4a549abf3d9a1620c7bbb03d9493c231addfeee240a74e7fcbc1e9f4b71bb.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -263,7 +263,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -478,57 +478,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -537,7 +528,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -614,7 +608,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -758,7 +752,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -787,7 +784,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -851,7 +851,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -885,7 +888,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -908,7 +914,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -938,6 +947,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/template-writer-from-asset.assets.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/template-writer-from-asset.assets.json index f72df28cc..ebe3694a9 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/template-writer-from-asset.assets.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/template-writer-from-asset.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "97cd237b0ae069fe0711bcc6a711e213fdaf0956421de5b964de9ccd0d2b23a1": { "displayName": "TemplateAsset", @@ -57,16 +57,16 @@ } } }, - "f2deb00037e54c1d0e8c6835e5fc66b48d87cd45bee452330ce1ba2e7f3e4db1": { + "11f4a549abf3d9a1620c7bbb03d9493c231addfeee240a74e7fcbc1e9f4b71bb": { "displayName": "template-writer-from-asset Template", "source": { "path": "template-writer-from-asset.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-791d1ba2": { + "current_account-current_region-55c5fb36": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f2deb00037e54c1d0e8c6835e5fc66b48d87cd45bee452330ce1ba2e7f3e4db1.json", + "objectKey": "11f4a549abf3d9a1620c7bbb03d9493c231addfeee240a74e7fcbc1e9f4b71bb.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/template-writer-from-asset.template.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/template-writer-from-asset.template.json index ad537d08e..b8ed7e69a 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/template-writer-from-asset.template.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/template-writer-from-asset.template.json @@ -84,7 +84,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/templatewriterfromassetIntegDefaultTestDeployAssert3AE00E9B.assets.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/templatewriterfromassetIntegDefaultTestDeployAssert3AE00E9B.assets.json index c8de6674c..8ce3f027f 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/templatewriterfromassetIntegDefaultTestDeployAssert3AE00E9B.assets.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/templatewriterfromassetIntegDefaultTestDeployAssert3AE00E9B.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "templatewriterfromassetIntegDefaultTestDeployAssert3AE00E9B Template", diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/tree.json index 60442b16e..4d3b99a96 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-asset.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"template-writer-from-asset":{"id":"template-writer-from-asset","path":"template-writer-from-asset","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"TemplateAsset":{"id":"TemplateAsset","path":"template-writer-from-asset/TemplateAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-asset/TemplateAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-asset/TemplateAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"TestOutputAsset":{"id":"TestOutputAsset","path":"template-writer-from-asset/TestOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-asset/TestOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-asset/TestOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"template-writer-from-asset/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"template-writer-from-asset/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"template-writer-from-asset/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"template-writer-from-asset/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"template-writer-from-asset/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-asset/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-asset/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"template-writer-from-asset/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"template-writer-from-asset/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-asset/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"TestTemplateWriterPolicy":{"id":"TestTemplateWriterPolicy","path":"template-writer-from-asset/TestTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/97cd237b0ae069fe0711bcc6a711e213fdaf0956421de5b964de9ccd0d2b23a1.97cd237b0ae069fe0711bcc6a711e213fdaf0956421de5b964de9ccd0d2b23a1"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterPolicy8177DE02","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"TestTemplateWriterProvider":{"id":"TestTemplateWriterProvider","path":"template-writer-from-asset/TestTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicy08B90D53","roles":[{"Ref":"TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A"}]}}}}}}},"Code":{"id":"Code","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (template-writer-from-asset/TestTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole08CC44E87","roles":[{"Ref":"TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A"}]}}}}}}}}},"TestTemplateWriterCustomResource":{"id":"TestTemplateWriterCustomResource","path":"template-writer-from-asset/TestTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"template-writer-from-asset/TestTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"template-writer-from-asset/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"template-writer-from-asset/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"template-writer-from-asset/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"template-writer-from-asset/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"template-writer-from-asset/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"template-writer-from-asset/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"template-writer-from-asset/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"template-writer-from-asset/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"template-writer-from-asset":{"id":"template-writer-from-asset","path":"template-writer-from-asset","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"TemplateAsset":{"id":"TemplateAsset","path":"template-writer-from-asset/TemplateAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-asset/TemplateAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-asset/TemplateAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"TestOutputAsset":{"id":"TestOutputAsset","path":"template-writer-from-asset/TestOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-asset/TestOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-asset/TestOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"template-writer-from-asset/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"template-writer-from-asset/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"template-writer-from-asset/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"template-writer-from-asset/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"template-writer-from-asset/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-asset/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-asset/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"template-writer-from-asset/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"template-writer-from-asset/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-asset/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"TestTemplateWriterPolicy":{"id":"TestTemplateWriterPolicy","path":"template-writer-from-asset/TestTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/97cd237b0ae069fe0711bcc6a711e213fdaf0956421de5b964de9ccd0d2b23a1.97cd237b0ae069fe0711bcc6a711e213fdaf0956421de5b964de9ccd0d2b23a1"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterPolicy8177DE02","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"TestTemplateWriterProvider":{"id":"TestTemplateWriterProvider","path":"template-writer-from-asset/TestTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicy08B90D53","roles":[{"Ref":"TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A"}]}}}}}}},"Code":{"id":"Code","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (template-writer-from-asset/TestTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-asset/TestTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole08CC44E87","roles":[{"Ref":"TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A"}]}}}}}}}}},"TestTemplateWriterCustomResource":{"id":"TestTemplateWriterCustomResource","path":"template-writer-from-asset/TestTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"template-writer-from-asset/TestTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"template-writer-from-asset/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"template-writer-from-asset/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"template-writer-from-asset/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"template-writer-from-asset/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"template-writer-from-asset/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"template-writer-from-asset/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"template-writer-from-asset/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"template-writer-from-asset/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts new file mode 100644 index 000000000..60953c7fc --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/asset.b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d/index.ts @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3"; +import * as crypto from 'crypto'; + +const s3Client = new S3Client({ region: process.env.REGION }); + +export const handler = async (event: any, context: any) => { + let status = 'SUCCESS'; + let responseData = {}; + + // These are the standard Create/Update/Delete custom resource request types defined here: + // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-requesttypes.html + if (event.RequestType === 'Create' || event.RequestType === 'Update') { + try { + const templateValues = JSON.parse(event.ResourceProperties.TemplateValues).templateValues; + const templateInputBucket = event.ResourceProperties.TemplateInputBucket; + const templateInputKey = event.ResourceProperties.TemplateInputKey; + const templateOutputBucket = event.ResourceProperties.TemplateOutputBucket; + const templateOutputKey = crypto.randomBytes(32).toString('hex'); + + const getObjectResponse = await s3Client.send(new GetObjectCommand({ + Bucket: templateInputBucket, + Key: templateInputKey + })); + + let template = await getObjectResponse.Body?.transformToString(); + + templateValues.forEach((templateValue: any) => { + template = replaceTarget(template, templateValue); + }); + + await s3Client.send(new PutObjectCommand({ + Bucket: templateOutputBucket, + Key: templateOutputKey, + Body: template + })); + + responseData = { + TemplateOutputKey: templateOutputKey + }; + } catch (err) { + status = 'FAILED'; + responseData = { + Error: err + }; + } + } + + return { + Status: status, + Reason: JSON.stringify(responseData), + PhysicalResourceId: event.PhysicalResourceId ?? context.logStreamName, + StackId: event.StackId, + RequestId: event.RequestId, + LogicalResourceId: event.LogicalResourceId, + Data: responseData, + }; +}; + +export function replaceTarget(template: string | undefined, templateValue: any) { + template = template?.replace( + new RegExp(`\\b${templateValue.id}\\b`, 'g'), + templateValue.value + ); + return template; +} diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/cdk.out b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/cdk.out index 3704a1b68..523a9aac3 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/cdk.out +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"45.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/integ.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/integ.json index 5b21ac3de..d07db7b08 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/integ.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "testCases": { "template-writer-from-large-asset/Integ/DefaultTest": { "stacks": [ @@ -9,5 +9,5 @@ "assertionStackName": "templatewriterfromlargeassetIntegDefaultTestDeployAssertA02D2FEC" } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1029.2" } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/manifest.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/manifest.json index 4ba69bdad..8bef37c30 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/manifest.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/manifest.json @@ -66,7 +66,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8d5c9f67882ab65eedb19cb7a7eade6ab178fb7611fcd6f6c3bf429815aa7026.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/f6244dde20ea629b24ab68f3051063ce7173e4fc79503f74a48aee99a7ec3655.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -263,7 +263,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -478,57 +478,48 @@ "properties": { "module": "aws-cdk-lib", "flags": { - "@aws-cdk/core:enableStackNameDuplicates": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": { "recommendedValue": true, - "explanation": "Allow multiple stacks with the same name" - }, - "aws-cdk:enableDiffNoFail": { - "recommendedValue": true, - "explanation": "Make `cdk diff` not fail when there are differences" + "explanation": "Pass signingProfileName to CfnSigningProfile" }, "@aws-cdk/core:newStyleStackSynthesis": { "recommendedValue": true, - "explanation": "Switch to new stack synthesis method which enables CI/CD" + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:stackRelativeExports": { "recommendedValue": true, - "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path" - }, - "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { - "recommendedValue": true, - "explanation": "DockerImageAsset properly supports `.dockerignore` files by default" - }, - "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { - "recommendedValue": true, - "explanation": "Fix the referencing of SecretsManager names from ARNs" - }, - "@aws-cdk/aws-kms:defaultKeyPolicies": { - "recommendedValue": true, - "explanation": "Tighten default KMS key policies" - }, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": { - "recommendedValue": true, - "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite" + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } }, - "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": { "recommendedValue": true, - "explanation": "Do not specify a default DesiredCount for ECS services" + "explanation": "Disable implicit openListener when custom security groups are provided" }, "@aws-cdk/aws-rds:lowercaseDbIdentifier": { "recommendedValue": true, - "explanation": "Force lowercasing of RDS Cluster names in CDK" + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { "recommendedValue": true, - "explanation": "Allow adding/removing multiple UsagePlanKeys independently" - }, - "@aws-cdk/aws-efs:defaultEncryptionAtRest": { - "recommendedValue": true, - "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default." + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeVersionProps": { "recommendedValue": true, - "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-lambda:recognizeLayerVersion": { "userValue": true, @@ -537,7 +528,10 @@ }, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { "recommendedValue": true, - "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default." + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:checkSecretUsage": { "userValue": true, @@ -614,7 +608,7 @@ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { "userValue": true, "recommendedValue": true, - "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in." }, "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { "userValue": true, @@ -758,7 +752,10 @@ }, "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy" + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-eks:nodegroupNameAttribute": { "userValue": true, @@ -787,7 +784,10 @@ }, "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { "recommendedValue": true, - "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/core:explicitStackTags": { "userValue": true, @@ -851,7 +851,10 @@ }, "@aws-cdk/core:aspectStabilization": { "recommendedValue": true, - "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis." + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { "userValue": true, @@ -885,7 +888,10 @@ }, "@aws-cdk/pipelines:reduceStageRoleTrustScope": { "recommendedValue": true, - "explanation": "Remove the root account principal from Stage addActions trust policy" + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-events:requireEventBusPolicySid": { "userValue": true, @@ -908,7 +914,10 @@ }, "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { "recommendedValue": true, - "explanation": "When enabled, scopes down the trust policy for the cross-account action role" + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } }, "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { "userValue": true, @@ -938,6 +947,21 @@ "userValue": true, "recommendedValue": true, "explanation": "When enabled, CDK creates and manages loggroup for the lambda function" + }, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": { + "recommendedValue": true, + "explanation": "When enabled, Network Load Balancer will be created with a security group by default." + }, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": { + "recommendedValue": true, + "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": { + "recommendedValue": true, + "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement" } } } diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/template-writer-from-large-asset.assets.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/template-writer-from-large-asset.assets.json index 9b59c1a17..aecdfe2ab 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/template-writer-from-large-asset.assets.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/template-writer-from-large-asset.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "122da676fba68619def0d539ff80855eaa0ba3686fb37faa298ce277c4feb8f8": { "displayName": "TemplateAsset", @@ -57,16 +57,16 @@ } } }, - "8d5c9f67882ab65eedb19cb7a7eade6ab178fb7611fcd6f6c3bf429815aa7026": { + "f6244dde20ea629b24ab68f3051063ce7173e4fc79503f74a48aee99a7ec3655": { "displayName": "template-writer-from-large-asset Template", "source": { "path": "template-writer-from-large-asset.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-6f550b97": { + "current_account-current_region-f457e3e2": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "8d5c9f67882ab65eedb19cb7a7eade6ab178fb7611fcd6f6c3bf429815aa7026.json", + "objectKey": "f6244dde20ea629b24ab68f3051063ce7173e4fc79503f74a48aee99a7ec3655.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/template-writer-from-large-asset.template.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/template-writer-from-large-asset.template.json index 36309c68d..26ffeb9e1 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/template-writer-from-large-asset.template.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/template-writer-from-large-asset.template.json @@ -85,7 +85,7 @@ "Arn" ] }, - "Runtime": "nodejs20.x", + "Runtime": "nodejs22.x", "Timeout": 60, "TracingConfig": { "Mode": "Active" diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/templatewriterfromlargeassetIntegDefaultTestDeployAssertA02D2FEC.assets.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/templatewriterfromlargeassetIntegDefaultTestDeployAssertA02D2FEC.assets.json index f81db08aa..6259f09b1 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/templatewriterfromlargeassetIntegDefaultTestDeployAssertA02D2FEC.assets.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/templatewriterfromlargeassetIntegDefaultTestDeployAssertA02D2FEC.assets.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "displayName": "templatewriterfromlargeassetIntegDefaultTestDeployAssertA02D2FEC Template", diff --git a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/tree.json b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/tree.json index a8032be5b..dd515b33f 100644 --- a/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/tree.json +++ b/source/patterns/@aws-solutions-constructs/resources/test/integ.template-writer-from-large-asset.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"template-writer-from-large-asset":{"id":"template-writer-from-large-asset","path":"template-writer-from-large-asset","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"TemplateAsset":{"id":"TemplateAsset","path":"template-writer-from-large-asset/TemplateAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-large-asset/TemplateAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-large-asset/TemplateAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"TestOutputAsset":{"id":"TestOutputAsset","path":"template-writer-from-large-asset/TestOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-large-asset/TestOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-large-asset/TestOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"template-writer-from-large-asset/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"template-writer-from-large-asset/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"template-writer-from-large-asset/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"template-writer-from-large-asset/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"template-writer-from-large-asset/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-large-asset/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-large-asset/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"template-writer-from-large-asset/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs20.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"template-writer-from-large-asset/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-large-asset/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"TestTemplateWriterPolicy":{"id":"TestTemplateWriterPolicy","path":"template-writer-from-large-asset/TestTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/122da676fba68619def0d539ff80855eaa0ba3686fb37faa298ce277c4feb8f8.122da676fba68619def0d539ff80855eaa0ba3686fb37faa298ce277c4feb8f8"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterPolicy8177DE02","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"TestTemplateWriterProvider":{"id":"TestTemplateWriterProvider","path":"template-writer-from-large-asset/TestTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.206.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicy08B90D53","roles":[{"Ref":"TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A"}]}}}}}}},"Code":{"id":"Code","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (template-writer-from-large-asset/TestTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole08CC44E87","roles":[{"Ref":"TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A"}]}}}}}}}}},"TestTemplateWriterCustomResource":{"id":"TestTemplateWriterCustomResource","path":"template-writer-from-large-asset/TestTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"template-writer-from-large-asset/TestTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"Integ":{"id":"Integ","path":"template-writer-from-large-asset/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"template-writer-from-large-asset/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"template-writer-from-large-asset/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"template-writer-from-large-asset/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"template-writer-from-large-asset/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"template-writer-from-large-asset/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"template-writer-from-large-asset/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"template-writer-from-large-asset/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"template-writer-from-large-asset":{"id":"template-writer-from-large-asset","path":"template-writer-from-large-asset","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"TemplateAsset":{"id":"TemplateAsset","path":"template-writer-from-large-asset/TemplateAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-large-asset/TemplateAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-large-asset/TemplateAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"TestOutputAsset":{"id":"TestOutputAsset","path":"template-writer-from-large-asset/TestOutputAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-large-asset/TestOutputAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-large-asset/TestOutputAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"LambdaFunctionServiceRole":{"id":"LambdaFunctionServiceRole","path":"template-writer-from-large-asset/LambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*"},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportLambdaFunctionServiceRole":{"id":"ImportLambdaFunctionServiceRole","path":"template-writer-from-large-asset/LambdaFunctionServiceRole/ImportLambdaFunctionServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"template-writer-from-large-asset/LambdaFunctionServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"policies":[{"policyName":"LambdaFunctionServiceRolePolicy","policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/lambda/*"]]}}],"Version":"2012-10-17"}}]}}}}},"LambdaFunction":{"id":"LambdaFunction","path":"template-writer-from-large-asset/LambdaFunction","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"role":"*","tracing":"Active","runtime":"*","handler":"*","code":"*","timeout":"*","memorySize":"*"},{"addEnvironment":["*","*",{"removeInEdge":true}]}]},"children":{"Code":{"id":"Code","path":"template-writer-from-large-asset/LambdaFunction/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-large-asset/LambdaFunction/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-large-asset/LambdaFunction/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"template-writer-from-large-asset/LambdaFunction/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"b670072ae403f5d0f7c4ac0413a63bb9f093a32fd1620d0908d53ce809c7575d.zip"},"environment":{"variables":{"AWS_NODEJS_CONNECTION_REUSE_ENABLED":"1"}},"handler":"index.handler","memorySize":1024,"role":{"Fn::GetAtt":["LambdaFunctionServiceRole0C4CDE0B","Arn"]},"runtime":"nodejs22.x","timeout":60,"tracingConfig":{"mode":"Active"}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"template-writer-from-large-asset/LambdaFunction/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-large-asset/LambdaFunction/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["xray:PutTelemetryRecords","xray:PutTraceSegments"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LambdaFunctioninlinePolicyAddedToExecutionRole007875684","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}}}},"TestTemplateWriterPolicy":{"id":"TestTemplateWriterPolicy","path":"template-writer-from-large-asset/TestTemplateWriterPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/122da676fba68619def0d539ff80855eaa0ba3686fb37faa298ce277c4feb8f8.122da676fba68619def0d539ff80855eaa0ba3686fb37faa298ce277c4feb8f8"]]}},{"Action":"s3:PutObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]}}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterPolicy8177DE02","roles":[{"Ref":"LambdaFunctionServiceRole0C4CDE0B"}]}}}}},"TestTemplateWriterProvider":{"id":"TestTemplateWriterProvider","path":"template-writer-from-large-asset/TestTemplateWriterProvider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.223.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterProviderframeworkonEventServiceRoleDefaultPolicy08B90D53","roles":[{"Ref":"TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A"}]}}}}}}},"Code":{"id":"Code","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (template-writer-from-large-asset/TestTemplateWriterProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A","Arn"]},"runtime":"nodejs22.x","timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"template-writer-from-large-asset/TestTemplateWriterProvider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["LambdaFunctionBF21E41F","Arn"]}}],"Version":"2012-10-17"},"policyName":"TestTemplateWriterProviderframeworkonEventinlinePolicyAddedToExecutionRole08CC44E87","roles":[{"Ref":"TestTemplateWriterProviderframeworkonEventServiceRoleED11CF9A"}]}}}}}}}}},"TestTemplateWriterCustomResource":{"id":"TestTemplateWriterCustomResource","path":"template-writer-from-large-asset/TestTemplateWriterCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*","*","*"]},"children":{"Default":{"id":"Default","path":"template-writer-from-large-asset/TestTemplateWriterCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"Integ":{"id":"Integ","path":"template-writer-from-large-asset/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"template-writer-from-large-asset/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"template-writer-from-large-asset/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"template-writer-from-large-asset/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"template-writer-from-large-asset/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"template-writer-from-large-asset/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"template-writer-from-large-asset/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"template-writer-from-large-asset/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/source/release-info.json b/source/release-info.json index 18ea67d4e..e840b563a 100644 --- a/source/release-info.json +++ b/source/release-info.json @@ -4,5 +4,5 @@ "patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "2.95.1" + "version": "2.96.0" } diff --git a/source/use_cases/aws-restaurant-management-demo/THIRD_PARTY_LICENSE.txt b/source/use_cases/aws-restaurant-management-demo/THIRD_PARTY_LICENSE.txt index 4428b73fe..6df0d8886 100644 --- a/source/use_cases/aws-restaurant-management-demo/THIRD_PARTY_LICENSE.txt +++ b/source/use_cases/aws-restaurant-management-demo/THIRD_PARTY_LICENSE.txt @@ -4,9 +4,9 @@ Licenses found in this list: ******************* Apache-2.0 MIT -ISC (MIT OR GPL-3.0-or-later) BSD-3-Clause +ISC ******************* License: Apache-2.0 @@ -14,9 +14,9 @@ License: Apache-2.0 Apache-2.0: @aws-cdk/asset-awscli-v1@2.2.242 Apache-2.0: @aws-cdk/asset-node-proxy-agent-v6@2.1.0 Apache-2.0: @aws-cdk/cloud-assembly-schema@48.9.0 -Apache-2.0: @aws-cdk/integ-tests-alpha@2.220.0-alpha.0 +Apache-2.0: @aws-cdk/integ-tests-alpha@2.223.0-alpha.0 Apache-2.0: @balena/dockerignore@1.0.2 -Apache-2.0: aws-cdk-lib@2.220.0 +Apache-2.0: aws-cdk-lib@2.223.0 Apache-2.0: constructs@10.4.2 Apache-2.0: typescript@4.9.5 @@ -68,24 +68,6 @@ MIT: supports-color@7.2.0 MIT: universalify@2.0.1 MIT: uuid@8.3.2 -******************* -License: ISC -******************* -ISC: aproba@2.1.0 -ISC: are-we-there-yet@4.0.2 -ISC: color-support@1.1.3 -ISC: console-control-strings@1.1.0 -ISC: gauge@5.0.2 -ISC: graceful-fs@4.2.11 -ISC: has-unicode@2.0.1 -ISC: minimatch@3.1.2 -ISC: npmlog@7.0.1 -ISC: semver@7.7.2 -ISC: set-blocking@2.0.0 -ISC: signal-exit@4.1.0 -ISC: wide-align@1.1.5 -ISC: yaml@1.10.2 - ******************* License: (MIT OR GPL-3.0-or-later) ******************* @@ -98,5 +80,14 @@ BSD-3-Clause: fast-uri@3.1.0 BSD-3-Clause: source-map@0.6.1 BSD-3-Clause: table@6.9.0 -Total libraries: 70 +******************* +License: ISC +******************* +ISC: graceful-fs@4.2.11 +ISC: minimatch@3.1.2 +ISC: npmlog@7.0.1 +ISC: semver@7.7.2 +ISC: yaml@1.10.2 + +Total libraries: 61 diff --git a/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package-lock.json b/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package-lock.json index 6dbf657cf..d0f47df0a 100644 --- a/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package-lock.json +++ b/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package-lock.json @@ -1,12 +1,12 @@ { "name": "create-order", - "version": "2.94.0", + "version": "2.95.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "create-order", - "version": "2.94.0", + "version": "2.95.1", "license": "ISC", "dependencies": { "uuid": "^8.3.2" diff --git a/source/use_cases/aws-restaurant-management-demo/package-lock.json b/source/use_cases/aws-restaurant-management-demo/package-lock.json index d6736ae11..0650a2cad 100644 --- a/source/use_cases/aws-restaurant-management-demo/package-lock.json +++ b/source/use_cases/aws-restaurant-management-demo/package-lock.json @@ -1,22 +1,22 @@ { "name": "@aws-solutions-constructs/aws-restaurant-management-demo", - "version": "2.94.0", + "version": "2.95.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@aws-solutions-constructs/aws-restaurant-management-demo", - "version": "2.94.0", + "version": "2.95.1", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@aws-cdk/integ-tests-alpha": "2.220.0-alpha.0", - "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "2.94.0", - "@aws-solutions-constructs/aws-eventbridge-lambda": "2.94.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "2.94.0", - "@aws-solutions-constructs/aws-lambda-s3": "2.94.0", - "@aws-solutions-constructs/aws-lambda-sns": "2.94.0", - "@aws-solutions-constructs/aws-lambda-stepfunctions": "2.94.0", + "@aws-cdk/integ-tests-alpha": "2.223.0-alpha.0", + "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "2.95.1", + "@aws-solutions-constructs/aws-eventbridge-lambda": "2.95.1", + "@aws-solutions-constructs/aws-lambda-dynamodb": "2.95.1", + "@aws-solutions-constructs/aws-lambda-s3": "2.95.1", + "@aws-solutions-constructs/aws-lambda-sns": "2.95.1", + "@aws-solutions-constructs/aws-lambda-stepfunctions": "2.95.1", "constructs": "^10.0.0", "source-map-support": "^0.5.16", "typescript": "^4.2.4" @@ -24,11 +24,11 @@ "devDependencies": { "@types/jest": "^27.4.0", "@types/node": "^10.3.0", - "aws-cdk-lib": "2.220.0", + "aws-cdk-lib": "2.223.0", "constructs": "^10.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.220.0", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, @@ -81,112 +81,112 @@ } }, "node_modules/@aws-cdk/integ-tests-alpha": { - "version": "2.220.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/integ-tests-alpha/-/integ-tests-alpha-2.220.0-alpha.0.tgz", - "integrity": "sha512-hx0QTdAyWUz5Dvs9qMmM43fxDj8JKvk+FGuO6YuNvwl7S03O4ejluIGn9lVSv9izSg3DZaIF1dSx+yDz4ma7wQ==", + "version": "2.223.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/integ-tests-alpha/-/integ-tests-alpha-2.223.0-alpha.0.tgz", + "integrity": "sha512-MOIIEoK0ZJ+mIl31TtWO5Y8DsFk+YWbMLcamn2ROwy1u5RK+s9T2xQ663o3vxJGYPZXnB/L36lfcyj4v0+jujQ==", "license": "Apache-2.0", "engines": { "node": ">= 18.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.220.0", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "node_modules/@aws-solutions-constructs/aws-cognito-apigateway-lambda": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-cognito-apigateway-lambda/-/aws-cognito-apigateway-lambda-2.94.0.tgz", - "integrity": "sha512-UL2g0oa3rQTUXQQFHWGtMY5gUBw8qUndlIACdd1RK+ld940v8RfLscZgSLx1QH7mwkEGm6hDxSH2MsuXg6oLWw==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-cognito-apigateway-lambda/-/aws-cognito-apigateway-lambda-2.95.1.tgz", + "integrity": "sha512-4t3WSEk7wosURu3Danye40HSqYTAB2k0X3AoN/LYFDnn4fyC2F6IcB/jtmFhnzOvO01vS9qkhBmZBV8O+hlnmg==", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "aws-cdk-lib": "^2.219.0", + "@aws-solutions-constructs/core": "2.95.1", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "node_modules/@aws-solutions-constructs/aws-eventbridge-lambda": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-eventbridge-lambda/-/aws-eventbridge-lambda-2.94.0.tgz", - "integrity": "sha512-j2lo8mXpVgiFXZASZHHqg/iU4tDTb2RbqZAZ7HSKn9KeMMOQ82Gp44au3qDr6WDihtxT2fZFNTPvFgwqTnO3Tw==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-eventbridge-lambda/-/aws-eventbridge-lambda-2.95.1.tgz", + "integrity": "sha512-8tUdTjBL+suoFt89uf0PUwma9At6B/yjFgbz047CdppkIZxLBawOPEBGBm09ToGCU2Q6QOD8pSL6gsDG+iju2w==", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "aws-cdk-lib": "^2.219.0", + "@aws-solutions-constructs/core": "2.95.1", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "node_modules/@aws-solutions-constructs/aws-lambda-dynamodb": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-lambda-dynamodb/-/aws-lambda-dynamodb-2.94.0.tgz", - "integrity": "sha512-bqdM8hJ9YSqYf32dfck1BPExJGOMOoafDxk2jA/97N6Ouj1xxzLDwApKF36cUCqU4rxyRe5W76vik4gHWqo+NQ==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-lambda-dynamodb/-/aws-lambda-dynamodb-2.95.1.tgz", + "integrity": "sha512-2b2HCsroQlHJr/whfh2DxxuVLrr16EpuTsIi2p20T2GuJO94lpYuxSF+cRCfjOcGiIXvA+cWzqdQflWBe3enBg==", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "aws-cdk-lib": "^2.219.0", + "@aws-solutions-constructs/core": "2.95.1", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "node_modules/@aws-solutions-constructs/aws-lambda-s3": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-lambda-s3/-/aws-lambda-s3-2.94.0.tgz", - "integrity": "sha512-MXVyEH6C1R6ZItvegWU7j0xs9nkV0k3EFt94ysk0aAR0Kfo23dlEZ2Z7MgsDpjRmHmzvT8vqdxHLSlqNO3huDQ==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-lambda-s3/-/aws-lambda-s3-2.95.1.tgz", + "integrity": "sha512-F09eiOmRjqiNy1ofFIt5kna3xd1WuMi0xjtrp0MboNCc2A4h5o5G+WQGnDJ0ivLLSM6gpc++B+WpAcMRPSJK3g==", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "aws-cdk-lib": "^2.219.0", + "@aws-solutions-constructs/core": "2.95.1", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "node_modules/@aws-solutions-constructs/aws-lambda-sns": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-lambda-sns/-/aws-lambda-sns-2.94.0.tgz", - "integrity": "sha512-cq5IKEUIhDCqQbp4ynHfd2Pk/7lKv4d99sJa1viHF1Ba8e9XFQvhseC87ViUv8Q7iAacaaotWxrbclepyt8oqQ==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-lambda-sns/-/aws-lambda-sns-2.95.1.tgz", + "integrity": "sha512-EzIrHI2rn83urCEqi8LZhVujBMOk3BMw6p2cXNu9PPxFeyU7ddETt4kPTREKdDkrcqZW4q8yj+zQQORTyAc+uA==", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "aws-cdk-lib": "^2.219.0", + "@aws-solutions-constructs/core": "2.95.1", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "node_modules/@aws-solutions-constructs/aws-lambda-stepfunctions": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-lambda-stepfunctions/-/aws-lambda-stepfunctions-2.94.0.tgz", - "integrity": "sha512-6KRPgNrjJWP4fLDpfv5Vh9cgtZiwHgnQdcbnYSXMmpKZyKskP4TQI1NLArsMk2qPk0moYzL7UN+AtD8GyHbU1g==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-lambda-stepfunctions/-/aws-lambda-stepfunctions-2.95.1.tgz", + "integrity": "sha512-RCyWsKR+jLL6jmJuFaqGtg01i1Cv9DxmBXTdKRs9hkMGZJovjnTNsaMxcU+VvQKxzAZZH7Amr7LN0SfP3UxjFQ==", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "aws-cdk-lib": "^2.219.0", + "@aws-solutions-constructs/core": "2.95.1", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "node_modules/@aws-solutions-constructs/core": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/core/-/core-2.94.0.tgz", - "integrity": "sha512-l/VerSUnTcBRrvb/unohLeWi1rsGrtN0TSHuGQrDlKTLoVQWvYquCwCY9Z/+PLymh+LHnxhy1WrSTXdY4Uru2g==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/core/-/core-2.95.1.tgz", + "integrity": "sha512-vaoig/ayr9BKwT8pYDy4YRyDZCiXTcpCnBQxpdh1InKd9RUW8qr/NGTZC4vE7K48vkWygNTiPAZQwfhfmsOtgw==", "bundleDependencies": [ "deepmerge", "npmlog", @@ -201,7 +201,7 @@ "npmlog": "^7.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.219.0", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, @@ -254,6 +254,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -275,26 +276,10 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/aproba": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", - "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", - "license": "ISC" - }, - "node_modules/are-we-there-yet": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz", - "integrity": "sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/aws-cdk-lib": { - "version": "2.220.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.220.0.tgz", - "integrity": "sha512-mOEyPP1ymWiLnSE0xFxWjG00E1DQ5wtbcgKUmtGjxyNdoG/Qret1nDLqE43YGZEbwca43WO/a2LDuSL6+hN7Lg==", + "version": "2.223.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.223.0.tgz", + "integrity": "sha512-UCSsBs3d6nAuXpx+nSQM6DmEHHOwVCbzItPmByh/Irx2V8vjPqLrjR3RDYbMWRv0u1bxK/YEjuzwnts8uYS7UQ==", "bundleDependencies": [ "@balena/dockerignore", "case", @@ -684,21 +669,6 @@ "dev": true, "license": "MIT" }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "license": "ISC" - }, "node_modules/constructs": { "version": "10.4.2", "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.4.2.tgz", @@ -715,32 +685,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/gauge": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-5.0.2.tgz", - "integrity": "sha512-pMaFftXPtiGIHCJHdcUUx9Rby/rFT/Kkt3fIIGCs+9PMDIljSyRiqraTlxNtBReJRDfUefpa263RQ3vnp5G/LQ==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -751,21 +695,6 @@ "node": ">=8" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "license": "ISC" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/jest-diff": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", @@ -843,24 +772,6 @@ "dev": true, "license": "MIT" }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -880,32 +791,6 @@ "source-map": "^0.6.0" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -931,15 +816,6 @@ "engines": { "node": ">=4.2.0" } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } } } } diff --git a/source/use_cases/aws-s3-static-website/THIRD_PARTY_LICENSE.txt b/source/use_cases/aws-s3-static-website/THIRD_PARTY_LICENSE.txt index 06bcf8c95..2ff7ebf81 100644 --- a/source/use_cases/aws-s3-static-website/THIRD_PARTY_LICENSE.txt +++ b/source/use_cases/aws-s3-static-website/THIRD_PARTY_LICENSE.txt @@ -4,9 +4,9 @@ Licenses found in this list: ******************* Apache-2.0 MIT -ISC (MIT OR GPL-3.0-or-later) BSD-3-Clause +ISC ******************* License: Apache-2.0 @@ -14,9 +14,9 @@ License: Apache-2.0 Apache-2.0: @aws-cdk/asset-awscli-v1@2.2.242 Apache-2.0: @aws-cdk/asset-node-proxy-agent-v6@2.1.0 Apache-2.0: @aws-cdk/cloud-assembly-schema@48.9.0 -Apache-2.0: @aws-cdk/integ-tests-alpha@2.220.0-alpha.0 +Apache-2.0: @aws-cdk/integ-tests-alpha@2.223.0-alpha.0 Apache-2.0: @balena/dockerignore@1.0.2 -Apache-2.0: aws-cdk-lib@2.220.0 +Apache-2.0: aws-cdk-lib@2.223.0 Apache-2.0: constructs@10.4.2 ******************* @@ -66,24 +66,6 @@ MIT: strip-ansi@6.0.1 MIT: supports-color@7.2.0 MIT: universalify@2.0.1 -******************* -License: ISC -******************* -ISC: aproba@2.1.0 -ISC: are-we-there-yet@4.0.2 -ISC: color-support@1.1.3 -ISC: console-control-strings@1.1.0 -ISC: gauge@5.0.2 -ISC: graceful-fs@4.2.11 -ISC: has-unicode@2.0.1 -ISC: minimatch@3.1.2 -ISC: npmlog@7.0.1 -ISC: semver@7.7.2 -ISC: set-blocking@2.0.0 -ISC: signal-exit@4.1.0 -ISC: wide-align@1.1.5 -ISC: yaml@1.10.2 - ******************* License: (MIT OR GPL-3.0-or-later) ******************* @@ -96,5 +78,14 @@ BSD-3-Clause: fast-uri@3.1.0 BSD-3-Clause: source-map@0.6.1 BSD-3-Clause: table@6.9.0 -Total libraries: 68 +******************* +License: ISC +******************* +ISC: graceful-fs@4.2.11 +ISC: minimatch@3.1.2 +ISC: npmlog@7.0.1 +ISC: semver@7.7.2 +ISC: yaml@1.10.2 + +Total libraries: 59 diff --git a/source/use_cases/aws-s3-static-website/package-lock.json b/source/use_cases/aws-s3-static-website/package-lock.json index f1e026014..209177cdf 100644 --- a/source/use_cases/aws-s3-static-website/package-lock.json +++ b/source/use_cases/aws-s3-static-website/package-lock.json @@ -1,28 +1,28 @@ { "name": "@aws-solutions-constructs/aws-s3-static-website", - "version": "2.94.0", + "version": "2.95.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@aws-solutions-constructs/aws-s3-static-website", - "version": "2.94.0", + "version": "2.95.1", "license": "Apache-2.0", "dependencies": { - "@aws-cdk/integ-tests-alpha": "2.220.0-alpha.0", - "@aws-solutions-constructs/aws-cloudfront-s3": "2.94.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-cdk/integ-tests-alpha": "2.223.0-alpha.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "2.95.1", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0", "source-map-support": "^0.5.16" }, "devDependencies": { "@types/jest": "^27.4.0", "@types/node": "^10.3.0", - "aws-cdk-lib": "2.220.0", + "aws-cdk-lib": "2.223.0", "constructs": "^10.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.220.0", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, @@ -75,39 +75,39 @@ } }, "node_modules/@aws-cdk/integ-tests-alpha": { - "version": "2.220.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/integ-tests-alpha/-/integ-tests-alpha-2.220.0-alpha.0.tgz", - "integrity": "sha512-hx0QTdAyWUz5Dvs9qMmM43fxDj8JKvk+FGuO6YuNvwl7S03O4ejluIGn9lVSv9izSg3DZaIF1dSx+yDz4ma7wQ==", + "version": "2.223.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/integ-tests-alpha/-/integ-tests-alpha-2.223.0-alpha.0.tgz", + "integrity": "sha512-MOIIEoK0ZJ+mIl31TtWO5Y8DsFk+YWbMLcamn2ROwy1u5RK+s9T2xQ663o3vxJGYPZXnB/L36lfcyj4v0+jujQ==", "license": "Apache-2.0", "engines": { "node": ">= 18.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.220.0", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "node_modules/@aws-solutions-constructs/aws-cloudfront-s3": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-cloudfront-s3/-/aws-cloudfront-s3-2.94.0.tgz", - "integrity": "sha512-UMSY8IXjNwoI0t+dMpQ4KgiLQdSae+eAGFqXQmpoREGJUKaTG9Qvx2xY07LnqNZLWxDdvdSveLfn/Qksx8Y6Wg==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/aws-cloudfront-s3/-/aws-cloudfront-s3-2.95.1.tgz", + "integrity": "sha512-W2gr3mJ5VYsrefTax8ziVPhWh5S7Q/1eNf+QXllb8L+kWLzHs+Knzt0fKbAsPo0ClBkYoBnThbegtZaxw3srNw==", "license": "Apache-2.0", "dependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "@aws-solutions-constructs/resources": "2.94.0", - "aws-cdk-lib": "^2.219.0", + "@aws-solutions-constructs/core": "2.95.1", + "@aws-solutions-constructs/resources": "2.95.1", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, "node_modules/@aws-solutions-constructs/core": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/core/-/core-2.94.0.tgz", - "integrity": "sha512-l/VerSUnTcBRrvb/unohLeWi1rsGrtN0TSHuGQrDlKTLoVQWvYquCwCY9Z/+PLymh+LHnxhy1WrSTXdY4Uru2g==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/core/-/core-2.95.1.tgz", + "integrity": "sha512-vaoig/ayr9BKwT8pYDy4YRyDZCiXTcpCnBQxpdh1InKd9RUW8qr/NGTZC4vE7K48vkWygNTiPAZQwfhfmsOtgw==", "bundleDependencies": [ "deepmerge", "npmlog", @@ -122,7 +122,7 @@ "npmlog": "^7.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.219.0", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, @@ -154,9 +154,9 @@ } }, "node_modules/@aws-solutions-constructs/resources": { - "version": "2.94.0", - "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/resources/-/resources-2.94.0.tgz", - "integrity": "sha512-zARk3WIFcnSXZGN8OV/XqQtc3aJeH7CQFKetWBuXaYeX932LAk/R8ds0UOThzxe1s86LFExrxrkb9f4uFOi3tA==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@aws-solutions-constructs/resources/-/resources-2.95.1.tgz", + "integrity": "sha512-girHQorgzoAPoJ4ADfFmBxNcnqtZcTchKRHMtTllvS6GfYEESMb6nMLGLC7xD51L2TUFXGB2YP9FH0OD9S8rjg==", "bundleDependencies": [ "@aws-sdk/client-kms", "@aws-sdk/client-s3" @@ -165,12 +165,12 @@ "dependencies": { "@aws-sdk/client-kms": "^3.478.0", "@aws-sdk/client-s3": "^3.478.0", - "@aws-solutions-constructs/core": "2.94.0", + "@aws-solutions-constructs/core": "2.95.1", "constructs": "^10.0.0" }, "peerDependencies": { - "@aws-solutions-constructs/core": "2.94.0", - "aws-cdk-lib": "^2.219.0", + "@aws-solutions-constructs/core": "2.95.1", + "aws-cdk-lib": "^2.223.0", "constructs": "^10.0.0" } }, @@ -196,6 +196,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -217,26 +218,10 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/aproba": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", - "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", - "license": "ISC" - }, - "node_modules/are-we-there-yet": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz", - "integrity": "sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/aws-cdk-lib": { - "version": "2.220.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.220.0.tgz", - "integrity": "sha512-mOEyPP1ymWiLnSE0xFxWjG00E1DQ5wtbcgKUmtGjxyNdoG/Qret1nDLqE43YGZEbwca43WO/a2LDuSL6+hN7Lg==", + "version": "2.223.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.223.0.tgz", + "integrity": "sha512-UCSsBs3d6nAuXpx+nSQM6DmEHHOwVCbzItPmByh/Irx2V8vjPqLrjR3RDYbMWRv0u1bxK/YEjuzwnts8uYS7UQ==", "bundleDependencies": [ "@balena/dockerignore", "case", @@ -626,21 +611,6 @@ "dev": true, "license": "MIT" }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "license": "ISC" - }, "node_modules/constructs": { "version": "10.4.2", "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.4.2.tgz", @@ -657,32 +627,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/gauge": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-5.0.2.tgz", - "integrity": "sha512-pMaFftXPtiGIHCJHdcUUx9Rby/rFT/Kkt3fIIGCs+9PMDIljSyRiqraTlxNtBReJRDfUefpa263RQ3vnp5G/LQ==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -693,21 +637,6 @@ "node": ">=8" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "license": "ISC" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/jest-diff": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", @@ -785,24 +714,6 @@ "dev": true, "license": "MIT" }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -822,32 +733,6 @@ "source-map": "^0.6.0" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -860,15 +745,6 @@ "engines": { "node": ">=8" } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } } } }